创建一个登录名
适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Analytics Platform System (PDW)
本文介绍如何使用 SQL Server Management Studio (SSMS ) 或 Transact-SQL 在 SQL Server 或 Azure SQL 数据库中创建登录名。 登录名是连接到 SQL Server 实例的人员或进程的标识。
背景
登录名是一个可由安全系统进行身份验证的安全主体或实体。 用户需要登录才能连接到SQL Server。 可以基于 Windows 主体 ((例如域用户或 Windows 域组) )创建登录名,也可以创建不基于 Windows 主体 (的登录名,例如SQL Server登录) 。
注意
若要使用SQL Server身份验证,数据库引擎必须使用混合模式身份验证。 有关详细信息,请参阅 选择身份验证模式。
Azure SQL引入了 Azure Active Directory 服务器主体 (登录名) ,Azure SQL 用于对数据库、Azure SQL 托管实例和Azure Synapse Analytics (专用 SQL 池进行身份验证,仅) 。
可以向作为安全主体的登录名授予权限。 登录名的范围是整个数据库引擎。 若要连接 SQL Server实例上的特定数据库,登录名必须映射到数据库用户。 数据库内的权限是向数据库用户而不是登录名授予和拒绝授予的。 SQL Server (的整个实例范围内的权限,例如,可以将 CREATE ENDPOINT 权限) 授予登录名。
注意
登录名连接到SQL Server时,会在 master 数据库中验证标识。 使用包含的数据库用户在数据库级别对 SQL Server 和 SQL 数据库 连接进行身份验证。 使用包含的数据库用户时,无需登录。 包含的数据库与其他数据库、SQL Server或SQL 数据库 (实例以及承载数据库的 master 数据库) 隔离。 SQL Server 支持包含的数据库用户进行 Windows 和 SQL Server 身份验证。 使用 SQL 数据库时,将包含的数据库用户与数据库级别防火墙规则相结合。 有关详细信息,请参阅包含数据库用户 - 使数据库可移植。
安全性
SQL Server要求在服务器上具有 ALTER ANY LOGIN 或 ALTER LOGIN 权限。
SQL 数据库需要 loginmanager 角色的成员身份。
使用 SSMS for SQL Server 创建登录名
在对象资源管理器中,展开要在其中创建新登录名的服务器实例的文件夹。
右键单击“安全性”文件夹,指向“新建”,然后选择“登录名…” 。
在“登录名 - 新建”对话框的“常规”页中,在“登录名”框中输入用户的名称 。 或者,选择“ 搜索...” 以打开 “选择用户或组 ”对话框。
如果选择“ 搜索...”:
在 “选择此对象类型”下,选择“ 对象类型...” ,打开“ 对象类型 ”对话框并选择以下任意或全部内容: 内置安全主体、 组和 用户。 默认情况下,将选中“内置安全主体”和“用户”。 完成后,选择“确定”。
在“ 从此位置”下,选择“ 位置...” 以打开“ 位置 ”对话框,然后选择一个可用的服务器位置。 完成后,选择“确定”。
在“输入要选择的对象名称(示例)”下,输入你想要查找的用户或组名。 有关详细信息,请参阅 “选择用户、计算机或组”对话框。
选择“ 高级...” 以获取更高级的搜索选项。 有关详细信息,请参阅 选择“用户”、“计算机”或“组”对话框 - 高级页面。
选择“确定”。
若要基于 Windows 主体创建一个登录名,请选择 “Windows 身份验证” 。 这是默认选项。
若要创建保存在SQL Server数据库的登录名,请选择“SQL Server身份验证”。
在“密码”框中,输入新用户的密码。 在“确认密码”框中再次输入该密码。
在更改现有密码时,选择 “指定旧密码” ,然后在 “旧密码” 框中键入旧密码。
若要强制实施有关复杂性和强制执行的密码策略选项,请选择 “强制实施密码策略” 。 有关详细信息,请参阅 Password Policy。 选中 “SQL Server 身份验证” 时,这是默认选项。
若要强制实施有关过期的密码策略选项,请选中 “强制密码过期” 。 必须选择 “强制实施密码策略” 才能启用此复选框。 选中 “SQL Server 身份验证” 时,这是默认选项。
若要在首次使用登录名后强制用户创建新密码,请选择 “用户在下次登录时必须更改密码” 。 必须选择 “强制密码过期” 才能启用此复选框。 选中 “SQL Server 身份验证” 时,这是默认选项。
若要将登录名与独立的安全性证书相关联,请选择“映射到证书”,然后再从列表中选择现有证书的名称。
若要将登录名与独立的非对称密钥相关联,请选择“映射到非对称密钥”,然后再从列表中选择现有密钥的名称。
若要将登录名与安全凭据相关联,请选中“ 映射到凭据 ”复选框,然后从列表中选择现有凭据或选择“ 添加 ”以创建新凭据。 若要从登录名中删除与安全凭据的映射,请从“映射凭据”中选择该 凭据 ,然后选择“ 删除”。 有关一般凭据的详细信息,请参阅 数据库引擎 (凭据) 。
从 “默认数据库” 列表中,选择登录名的默认数据库。 “Master” 是此选项的默认值。
从 “默认语言” 列表中,选择登录名的默认语言。
选择“确定”。
附加选项
“登录名 - 新建”对话框中还提供了其他四个页面上选项:“服务器角色”、“用户映射”、“安全对象”和“状态” 。
服务器角色
注意
这些服务器角色不适用于SQL 数据库。
“服务器角色” 页将列出可分配给新登录名的所有可能的角色。 提供了以下选项:
“bulkadmin”复选框
bulkadmin 固定服务器角色的成员可以运行 BULK INSERT 语句。
“dbcreator”复选框
dbcreator 固定服务器角色的成员可以创建、更改、删除和还原任何数据库。
“diskadmin”复选框
diskadmin 固定服务器角色的成员可以管理磁盘文件。
“processadmin”复选框
processadmin 固定服务器角色的成员可以终止在数据库引擎实例中运行的进程。
“public”复选框
默认情况下,所有 SQL Server 用户、组和角色都属于 public 固定服务器角色。
“securityadmin”复选框
securityadmin 固定服务器角色的成员可以管理登录名及其属性。 他们可以 GRANT、DENY 和 REVOKE 服务器级别的权限。 他们还可以 GRANT、DENY 和 REVOKE 数据库级别的权限。 此外,他们还可以重置 SQL Server 登录名的密码。
“serveradmin”复选框
serveradmin 固定服务器角色的成员可以更改服务器范围的配置选项和关闭服务器。
“setupadmin”复选框
setupadmin 固定服务器角色成员可以添加和删除链接服务器,并可以执行某些系统存储过程。
“sysadmin”复选框
sysadmin 固定服务器角色的成员可以在数据库引擎中执行任何活动。
用户映射
“用户映射” 页将列出可应用于登录名的所有可能的数据库以及这些数据库上的数据库角色成员身份。 选定的数据库将确定对登录名可用的角色成员身份。 此页还将提供以下选项:
映射到此登录名的用户
选择此登录名可以访问的数据库。 选择某个数据库时,其有效的数据库角色将会显示在“数据库角色成员身份: database_name”窗格中。
Map
允许登录名访问下面列出的数据库。
Database
列出服务器上可用的数据库。
用户
指定要映射到登录名的数据库用户。 默认情况下,数据库用户名与登录名相同。
默认架构
指定用户的默认架构。 首次创建用户时,其默认架构是 dbo。 可以指定尚不存在的默认架构。 不能为映射到 Windows 组、证书或非对称密钥的用户指定默认架构。
已启用 Guest 帐户:database_name
只读属性,指示所选数据库是否已启用 Guest 帐户。 可使用 Guest 帐户的 “登录属性” 对话框的 “状态” 页来启用或禁用 Guest 帐户。
数据库角色成员身份:database_name
选择用户在指定数据库中的角色。 所有用户都是每个数据库中 公共 角色的成员,不能删除。 有关数据库角色的详细信息,请参阅 数据库级别的角色。
安全对象
“安全对象” 页将列出所有可能的安全对象以及可授予登录名的针对这些安全对象的权限。 此页还将提供以下选项:
上部网格
包含一个或多个可以为其设置权限的项目。 上部网格中显示的列会根据主体或安全对象的不同而变化。
向上部网格中添加项目:
选择“搜索”。
在“ 添加对象 ”对话框中,选择以下选项之一: “特定对象...”、 类型的所有对象...或 “服务器server_name”。 选择“确定”。
注意
选择 “服务器server_name 会自动用该服务器的所有安全对象填充上部网格。
如果选择“特定对象…”:
在 “选择对象 ”对话框中的“ 选择这些对象类型”下,选择“ 对象类型...”。
在“选择对象类型”对话框中,选择以下任意或全部对象类型:“端点”、“登录名”、“服务器”、“可用性组”和“服务器角色” 。 选择“确定”。
在 “输入对象名称以选择 (示例) ”下,选择“ 浏览...”。
在“ 浏览对象 ”对话框中,选择在“ 选择 对象类型”对话框中选择的类型的任何可用对象,然后选择“ 确定”。
在 “选择对象 ”对话框中,选择“ 确定”。
如果选择“所有类型的对象…”,请在“选择对象类型”对话框中,选择以下任意或全部对象类型: “端点”、“登录名”、“服务器”、“可用性组”和“服务器角色” 。 选择“确定”。
名称
添加到网格中的每个主体或安全对象的名称。
类型
描述每个项目的类型。
“显式”选项卡
列出了上部网格中选定的安全对象的可能权限。 并非所有选项均用于任何显式权限。
权限
权限的名称。
授权者
授予该权限的主体。
授予
选中该选项可以将此权限授予该登录名。 清除该选项将撤消此权限。
具有授予权限
反映所列权限的 WITH GRANT 选项的状态。 此框是只读的。 若要应用此权限,请使用 GRANT 语句。
拒绝
选中该选项可以拒绝该登录名具有该权限。 清除该选项将撤消此权限。
状态
“状态”页列出了可在所选登录SQL Server配置的一些身份验证和授权选项。
此页还将提供以下选项:
连接到数据库引擎的权限
当使用此设置时,应将所选登录名视为可授予或拒绝授予其对安全对象的访问权限的主体。
如果选择 “授予” ,将向登录名授予 CONNECT SQL 权限。 如果选择 “拒绝” ,将拒绝向登录名授予 CONNECT SQL 权限。
登录
当使用此设置时,应将所选登录名视为表中的记录。 对此处列出的值的更改将应用于该记录。
已禁用的登录名继续作为记录存在。 但是,如果它尝试连接到SQL Server,则不会对登录名进行身份验证。
选择此选项以启用或禁用此登录名。 此选项使用 ALTER LOGIN 语句和 ENABLE 或 DISABLE 选项。
SQL Server 身份验证
仅当所选登录名使用SQL Server身份验证进行连接并且登录名已被锁定时,“登录名被锁定”复选框才可用。此设置为只读。 若要解除对已锁定登录名的锁定,请执行带 UNLOCK 选项的 ALTER LOGIN。
使用 Windows 身份验证和 T-SQL 创建登录名
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择“执行”。
-- Create a login for SQL Server by specifying a server name and a Windows domain account name. CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS; GO
使用 SQL Server 身份验证和 T-SQL 创建登录名
在 “对象资源管理器” 中,连接到 数据库引擎的实例。
在标准栏上,选择“新建查询” 。
将以下示例复制并粘贴到查询窗口中,然后选择“执行”。
-- Creates the user "shcooper" for SQL Server using the security credential "RestrictedFaculty" -- The user login starts with the password "Baz1nga," but that password must be changed after the first login. CREATE LOGIN shcooper WITH PASSWORD = 'Baz1nga' MUST_CHANGE, CREDENTIAL = RestrictedFaculty; GO
有关详细信息,请参阅 CREATE LOGIN (Transact-SQL)。
跟进:创建登录名后要执行的步骤
创建登录名后,该登录名可以连接到SQL Server,但不一定有足够的权限来执行任何有用的工作。 下面的列表提供了指向常见登录操作的链接。