创建一个登录名

适用于:SQL Server (所有受支持的版本) Azure SQL数据库Azure SQL 托管实例 Azure Synapse 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 LOGINALTER LOGIN 权限。

SQL 数据库需要 loginmanager 角色的成员身份。

使用 SSMS for SQL Server 创建登录名

  1. 在对象资源管理器中,展开要在其中创建新登录名的服务器实例的文件夹。

  2. 右键单击“安全性”文件夹,指向“新建”,然后选择“登录名…” 。

  3. 在“登录名 - 新建”对话框的“常规”页中,在“登录名”框中输入用户的名称 。 或者,选择 “搜索...” 以打开 “选择用户或组 ”对话框。

    如果选择 “搜索...”

    1. 在“ 选择此对象类型”下,选择 “对象类型...” 以打开 “对象类型 ”对话框,然后选择以下任意或全部内容: 内置安全主体用户。 默认情况下,将选中“内置安全主体”和“用户”。 完成后,选择“确定”。

    2. 在“ 从此位置”下,选择“ 位置...” 以打开“ 位置 ”对话框,然后选择其中一个可用的服务器位置。 完成后,选择“确定”。

    3. 在“输入要选择的对象名称(示例)”下,输入你想要查找的用户或组名。 有关详细信息,请参阅 “选择用户、计算机或组”对话框

    4. 选择 “高级...” 以获取更高级的搜索选项。 有关详细信息,请参阅 选择“用户”、“计算机”或“组”对话框 - 高级页面

    5. 选择“确定”。

  4. 若要基于 Windows 主体创建一个登录名,请选择 “Windows 身份验证” 。 这是默认选项。

  5. 若要创建保存在SQL Server数据库上的登录名,请选择SQL Server身份验证

    1. 在“密码”框中,输入新用户的密码。 在“确认密码”框中再次输入该密码。

    2. 在更改现有密码时,选择 “指定旧密码” ,然后在 “旧密码” 框中键入旧密码。

    3. 若要强制实施有关复杂性和强制执行的密码策略选项,请选择 “强制实施密码策略” 。 有关详细信息,请参阅 Password Policy。 选中 “SQL Server 身份验证” 时,这是默认选项。

    4. 若要强制实施有关过期的密码策略选项,请选中 “强制密码过期” 。 必须选择 “强制实施密码策略” 才能启用此复选框。 选中 “SQL Server 身份验证” 时,这是默认选项。

    5. 若要在首次使用登录名后强制用户创建新密码,请选择 “用户在下次登录时必须更改密码” 。 必须选择 “强制密码过期” 才能启用此复选框。 选中 “SQL Server 身份验证” 时,这是默认选项。

  6. 若要将登录名与独立的安全性证书相关联,请选择“映射到证书”,然后再从列表中选择现有证书的名称。

  7. 若要将登录名与独立的非对称密钥相关联,请选择“映射到非对称密钥”,然后再从列表中选择现有密钥的名称。

  8. 若要将登录名与安全凭据相关联,请选中 “映射到凭据 ”复选框,然后从列表中选择现有凭据,或选择“ 添加 ”以创建新凭据。 若要从登录名中删除到安全凭据的映射,请从 映射凭据 中选择凭据,然后选择“ 删除”。 有关凭据的详细信息,请参阅 凭据 (数据库引擎)

  9. “默认数据库” 列表中,选择登录名的默认数据库。 “Master” 是此选项的默认值。

  10. “默认语言” 列表中,选择登录名的默认语言。

  11. 选择“确定”。

附加选项

“登录名 - 新建”对话框中还提供了其他四个页面上选项:“服务器角色”、“用户映射”、“安全对象”和“状态” 。

服务器角色

注意

这些服务器角色不适用于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
选择用户在指定数据库中的角色。 所有用户都是每个数据库中 的公共 角色的成员,无法删除。 有关数据库角色的详细信息,请参阅 数据库级别的角色

安全对象

“安全对象” 页将列出所有可能的安全对象以及可授予登录名的针对这些安全对象的权限。 此页还将提供以下选项:

上部网格
包含一个或多个可以为其设置权限的项目。 上部网格中显示的列会根据主体或安全对象的不同而变化。

向上部网格中添加项目:

  1. 选择“搜索”。

  2. 在“ 添加对象 ”对话框中,选择下列选项之一: 特定对象...类型的所有对象...服务器server_name。 选择“确定”。

    注意

    选择 服务器server_name 会自动用该服务器的所有安全对象填充上网格。

  3. 如果选择“特定对象…”:

    1. “选择对象 ”对话框中,在“ 选择这些对象类型”下,选择 “对象类型...”

    2. 在“选择对象类型”对话框中,选择以下任意或全部对象类型:“端点”、“登录名”、“服务器”、“可用性组”和“服务器角色” 。 选择“确定”。

    3. “输入对象名称”下,选择 (示例) ,选择“ 浏览...”

    4. 在“ 浏览对象 ”对话框中,选择在“ 选择对象类型 ”对话框中选择的类型的任何可用对象,然后选择“ 确定”。

    5. 在“ 选择对象 ”对话框中,选择“ 确定”。

  4. 如果选择“所有类型的对象…”,请在“选择对象类型”对话框中,选择以下任意或全部对象类型: “端点”、“登录名”、“服务器”、“可用性组”和“服务器角色” 。 选择“确定”。

名称
添加到网格中的每个主体或安全对象的名称。

类型
描述每个项目的类型。

“显式”选项卡
列出了上部网格中选定的安全对象的可能权限。 并非所有选项均用于任何显式权限。

权限
权限的名称。

授权者
授予该权限的主体。

授予
选中该选项可以将此权限授予该登录名。 清除该选项将撤消此权限。

具有授予权限
反映所列权限的 WITH GRANT 选项的状态。 此框是只读的。 若要应用此权限,请使用 GRANT 语句。

拒绝
选中该选项可以拒绝该登录名具有该权限。 清除该选项将撤消此权限。

状态

状态”页列出了可在所选SQL Server登录名上配置的一些身份验证和授权选项。

此页还将提供以下选项:

连接到数据库引擎的权限
当使用此设置时,应将所选登录名视为可授予或拒绝授予其对安全对象的访问权限的主体。

如果选择 “授予” ,将向登录名授予 CONNECT SQL 权限。 如果选择 “拒绝” ,将拒绝向登录名授予 CONNECT SQL 权限。

登录
当使用此设置时,应将所选登录名视为表中的记录。 对此处列出的值的更改将应用于该记录。

已禁用的登录名继续作为记录存在。 但是,如果尝试连接到SQL Server,则不会对登录名进行身份验证。

选择此选项以启用或禁用此登录名。 此选项将 ALTER LOGIN 语句与 ENABLE 或 DISABLE 选项一起使用。

SQL Server 身份验证
仅当所选登录名使用SQL Server身份验证进行连接并且登录已被锁定时,复选框“登录名”才会被锁定。此设置为只读。 若要解除对已锁定登录名的锁定,请执行带 UNLOCK 选项的 ALTER LOGIN。

通过 T-SQL 使用 Windows 身份验证创建登录名

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准栏上,选择“新建查询” 。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。

    -- Create a login for SQL Server by specifying a server name and a Windows domain account name.  
    
    CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;  
    GO  
    
    

使用 T-SQL 的SQL Server身份验证创建登录名

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准栏上,选择“新建查询” 。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。

    -- 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,但不一定有足够的权限来执行任何有用的工作。 下面的列表提供了指向常见登录操作的链接。

另请参阅