如何在sql server中新建数据库用户账户

如题所述

2.2 登录名
2.2.1 登录名
登录名是服务器级别的一个实体,用于登录到 SQL Server 实例。登录名的元数据保存在 master 数据库的 syslogins 表。
登录名包括以下2类:
(1) Windows 登录
SQL Server 将为 Windows 帐户创建一个 SID。客户端在登录 SQL Server 时使用的是 SQL Server 的登录名,而不是 Windows 帐户。当使用集成身份验证时,SQL Server 会自动查询当前实例中是否存在对应的登录名,验证通过后才完成连接。
(2) SQL 登录
如果 SQL Server 实例处于混合身份验证模式,那么可以创建当前实例自有的登录名。
2.2.2 新建 Windows 登录
在 SSMS 中展开“安全性”、“登录名”。在右键菜单中选择“新建登录名”。
默认的新建登录名是基于 Windows 身份验证。单击“登录名”文本框右侧的“搜索”按钮,搜索一个用户或组。
在“选择用户或组”对话窗口,默认的“对象类型”只有“内置安全主体”和“用户”两类。可以单击“对象类型”按钮并需要添加“组”类型。
可以单击“位置”按钮,从而在本地计算机或域(以及受信任的域)中进行搜索 Windows 对象。
在“输入要选择的对象名称”文本框中输入一个 Windows 对象名称。建议单击“检查名称”按钮,检查对象名称是否存在。如果同时有多个对象的名称都匹配了输入的字符,则需要从弹出的选择窗口中选择其中的一个对象。
T-SQL 语句示例如下:
USE [master]
GO
CREATE LOGIN [SQLSVR2014\LocalSqlUser] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
最佳实践:
对于域帐户,建议从域级别使用 AGDLP 策略可简化帐户管理。即使用 Windows 身份验证,在域级别创建 Windows 组(全局组、域本地组),然后在 SQL Server 上为整个组创建登录名。
2.2.3 新建 SQL 登录
如果新建的登录名是基本 SQL Server 身份验证,需要为新的登录名设置新的密码,同时为其指定密码策略。
密码策略有3个选项:
(1)强制实施密码策略
对 SQL Server 登录名强制实施计算机的 Windows 密码策略。这包括密码长度和密码复杂性。此功能仅在 Windows Server 2003 和更高版本中提供。在数据库实例所在的计算机打开“管理工具”中的“本地安全策略”,依次展开“安全设置”“帐户策略”,然后单击“密码策略”,密码策略将在结果窗格中所示。
如果取消了“强制实施密码策略”,则“强制密码过期”和“用户在下次登录时必须更改密码”选项都不可用。
(2)强制密码过期
对 SQL Server 登录名强制实施计算机的密码最长使用期限策略。
(3)用户在下次登录时必须更改密码
要求用户在下次连接时更改密码。更改密码的功能由 SSMS 提供。如果启用了“用户在下次登录时必须更改密码”选项,则第三方软件开发人员应提供此功能。
新建 SQL 登录名的 T-SQL 语句示例如下:
USE [master]
GO
CREATE LOGIN [SqlUser1] WITH PASSWORD=N'Password123' MUST_CHANGE, DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
GO
2.2.4 修改密码
对于 SQL 登录名,可以在 SSMS 中重置密码。
T-SQL 语句示例如下:
USE [master]
GO
Alter Login [sa] with password='newpassword'
GO
如果指定旧密码,T-SQL 语句示例如下:
USE [master]
GO
Alter Login [sa] with password='newpassword' old_password='oldpassword'
GO
可以使用 HASHED 参数加密密码字符。
ALTER LOGIN [SqlUser1] WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO
提示:
不推荐执行 sp_password 存储过程修改密码。
2.2.5 修改登录名的状态
状态包括了两类设置:是否允许连接到数据库引擎;是否已启用登录。
如果在安装过程中选择 Windows 身份验证,则安装程序仍然会为 SQL Server 身份验证创建 sa 帐户,但会禁用该帐户。如果稍后更改为混合模式身份验证,则 sa 登录名仍处于禁用状态。如果需要使用 sa 帐户,则必须启用 sa 登录名并分配一个新密码。
USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD = 'Password123'
GO
ALTER LOGIN [sa] ENABLE
GO
提示:
由于 sa 帐户广为人知且经常成为恶意用户的攻击目标,因此除非应用程序需要使用 sa 帐户,否则请勿启用该帐户。切勿为 sa 帐户设置空密码或弱密码。
2.2.6 解锁登录名
如果为SQL 登录名启用了“强制密码策略”,可能会在某些场景中被锁住该登录名导致无法登录。
可以为该登录名在重设密码后再解锁。
ALTER LOGIN [SqlUser1] WITH PASSWORD = 'P@ssw0rd' UNLOCK ;
GO
如果不需要更改密码,则可以通过关闭密码策略并再次打开的方法解锁该登录名。
ALTER LOGIN [SqlUser1] WITH CHECK_POLICY = OFF;
ALTER LOGIN [SqlUser1] WITH CHECK_POLICY = ON;
GO
2.2.7 删除登录名
在 SSMS 中可以直接删除某个登录名。在删除之前,请确保该登录名当前没有登录到数据库引擎,否则删除登录名失败。
T-SQL 语句示例如下:
USE [master]
GO
DROP LOGIN [SqlUser1]
GO
2.4 数据库用户
2.4.1 数据库用户
用户是数据库级别的安全主体,用于对数据库对象进行授权。
登录名仅用于登录到 SQL Server 实例,用户则是一个或多个登录名在数据库中的映射以便为登录名提供对数据库的访问。创建登录名时会默认将其映射为数据库的用户。
在安装 SQL Server 后,数据库有以下4个默认的用户,不可以修改或删除这些默认的用户。
(1) dbo
通常 sa 登录名、sysadmin 角色的成员、数据库的拥有者被映射为 dbo 用户。
(2) guest
数据库的 guest 用户默认为 public 服务器角色。仅允许登录到 SQL Server 实例,但不能访问数据库。这个用户类似于 Windows 的 everyone 帐户。在用户数据库中,默认被禁用。如果为其授予 CONNECT 权限,则可以启用 guest 用户。
(3) INFORMATION_SCHEMA
在用户数据库中,默认被禁用。
(4) sys
在用户数据库中,默认被禁用。
2.4.2 基于登录名的用户
最常见的用户是基于 master 数据库中登录名的用户,有以下一些具体的类型。
(1)基于 Windows 用户的登录名的用户。
(2)基于 Windows 组的登录名的用户。
(3)基于 Windows 组成员的登录名的用户。这类 Windows 主体可以没有登录名,但可以通过 Windows 组(包括嵌套的组)中的成员身份连接到数据库引擎。
(4)基于使用 SQL Server 身份验证的登录名的用户。
通过 SSMS 可以创建“Windows 用户”(必须带登录名)或者“带登录名的 SQL 用户”。
T-SQL 语法示例如下:
CREATE USER [Domain1\WindowsUser1]
CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUser1
CREATE USER [Domain1\WindowsGroupManagers]
CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
CREATE USER SQLAUTHLOGIN1
CREATE USER SQLAUTHLOGIN1 FOR LOGIN SQLAUTHLOGIN1
CREATE USER 语句中, FOR 子句与 FROM 子句可以相互替代。以下语句具有相同的作用。
CREATE USER [Domain1\WindowsUser1] FOR LOGIN Domain1\WindowsUser1
CREATE USER [Domain1\WindowsUser1] FROM LOGIN Domain1\WindowsUser1
2.4.3 包含数据库的用户
SQL Server 2012 引入了包含数据库。在包含数据库中,可以直接在数据库级别进行身份验证(绕过服务器级别),而无需在服务器级别创建登录名。包括基于无登录名的 “Windows 用户”(或 Windows 组用户)、“带密码的 SQL 用户”。
T-SQL 语法示例如下:
CREATE USER [Domain1\WindowsUser1]
CREATE USER [Domain1\WindowsGroupManagers]
CREATE USER DbUser1 WITH PASSWORD = 'Password123'
在创建此类用户时,不仅授予用户对当前数据库的访问权限,并且还将授予对数据库引擎的新访问权限。但是在登录到数据库引擎时必须指定连接的数据库名称,否则登录失败。例如,在 SSMS 的“连接到服务器”对话窗口,必须单击“选项”按钮,然后在“连接属性”选项卡中为“连接到数据库”指定数据库名称。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-11-12

添加一个管理员账户,在控制面板用户类型改为管理员账户类型就行。

1、SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

2、SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。

3、结构化查询语言SQL(STRUCTURED QUERY LANGUAGE)是最重要的关系数据库操作语言,并且它的影响已经超出数据库领域,得到其他领域的重视和采用,如人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等。

相似回答