创建数据库用户

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)

本文介绍如何创建最常见的数据库用户类型。 有 13 种类型的用户。 CREATE USER (Transact-SQL)一文中提供了完整列表。 SQL Server 的所有品种都支持数据库用户,但不一定支持所有类型的用户。

可以使用 SQL Server Management Studio 或使用 Transact-SQL 创建数据库用户。

了解用户类型

Management Studio 在创建数据库用户时提供了六个选项。 下图显示了绿色框中的六个选项,并指示它们所代表的内容。

Diagram that explains the different types of users.

选择用户类型

未映射到登录名的登录名或用户

如果不熟悉 SQL Server,则很难确定要创建的用户类型。 首先问自己,需要访问数据库的个人或组是否具有登录名? 数据库中的 master 登录名对于管理 SQL Server 的人员以及需要访问 SQL Server 实例上许多或全部数据库的人员很常见。 在这种情况下,你将创建一个 具有登录名的 SQL 用户。 数据库用户是连接到数据库时登录名的标识。 数据库用户可以使用与登录名相同的名称,但这不是必需的。 本文假定 SQL Server 中已存在登录名。 有关如何创建登录名的信息,请参阅 “创建登录名”

如果需要访问数据库的个人或组没有登录名,并且他们只需要访问一个或多个数据库,请创建具有密码的 Windows 用户或 SQL 用户也称为包含的数据库用户。 包含的数据库用户与数据库中的登录 master 名无关。 若要在 SQL Server 实例之间轻松移动数据库,这是一个不错的选择。 若要在 SQL Server 上使用此选项,管理员必须先为 SQL Server 启用包含的数据库,然后才能为包含启用数据库。 有关详细信息,请参阅 包含的数据库用户 - 使你的数据库可移植

重要

作为包含的数据库用户进行连接时,必须将数据库的名称作为连接字符串的一部分提供。 若要在 SQL Server Management Studio(SSMS)中指定数据库,请在 “连接到 ”对话框中选择“ 选项”,然后选择“ 连接属性 ”选项卡。

当连接人员无法使用 Windows 身份验证进行身份验证时,请选择具有密码的 SQL 用户或具有登录名的 SQL 用户。 当组织外部的人员(例如客户)连接到 SQL Server 时,这很常见。

提示

对于组织内部的人员,Windows 身份验证是更好的选择,因为它们不必记住其他密码,并且 Windows 身份验证提供了其他安全功能,例如 Kerberos。

背景

用户是数据库级安全主体。 登录名必须映射到数据库用户才能连接到数据库。 登录名可以映射到不同的数据库作为不同用户,但只能映射为每个数据库中的一个用户。 在部分包含的数据库中,可以创建没有登录名的用户。 有关包含的数据库用户的详细信息,请参阅 CREATE USER (Transact-SQL)。 如果启用了数据库中的来宾用户,则未映射到数据库用户的登录名可以输入数据库作为来宾用户。

重要

来宾用户通常处于禁用状态。 除非有必要,否则不要启用来宾用户。

作为安全主体,可以向用户授予权限。 用户的范围是数据库。 若要连接到 SQL Server 实例上的特定数据库,必须将登录名映射到数据库用户。 向数据库用户(而不是登录名)授予和拒绝数据库中的权限。

权限

需要对数据库具有 ALTER ANY USER 权限。

使用 SSMS 创建用户

  1. 在对象资源管理器中 ,展开“数据库” 文件夹。

  2. 展开要在其中创建新数据库用户的数据库。

  3. 右键单击“安全”文件夹,指向“新建”,然后选择“用户...”

  4. “数据库用户 - 新建 ”对话框中的 “常规 ”页上,从 “用户类型”列表中选择以下用户类型 之一:

    • 具有登录名的 SQL 用户

    • 具有密码 的 SQL 用户(启用包含的数据库时)

    • 没有登录名的 SQL 用户

    • 映射到证书的用户

    • 映射到非对称密钥的用户

    • Windows 用户

  5. 选择某个选项时,对话框中的剩余选项可能会更改。 某些选项仅适用于特定类型的数据库用户。 某些选项可能留空,并且将使用默认值。

    用户名
    输入新用户的名称。 如果已“用户类型”列表中选择 Windows 用户,还可以选择省略号(...)以打开“选择用户或组”对话框。

    登录名
    输入用户的登录名。 或者,选择省略号 (...) 以打开 “选择登录 ”对话框。 如果你从“用户类型”列表中选择具有登录名的 SQL 用户或 Windows 用户,则登录可用。

    密码确认密码
    为在数据库中进行身份验证的用户输入密码。

    默认语言
    输入用户的默认语言。

    默认架构
    输入将拥有此用户创建对象的架构。 或者,选择省略号 (...) 以打开 “选择架构 ”对话框。 如果选择具有登录名的 SQL 用户、没有登录名的 SQL 用户,或者“用户类型”列表中选择 Windows 用户,则可以使用默认架构

    证书名称
    输入要用于数据库用户的证书。 或者,选择省略号 (...) 以打开 “选择证书 ”对话框。 如果选择从“用户类型”列表中选择“映射到证书的用户”,则证书名称可用。

    非对称密钥名称
    输入要用于数据库用户的密钥。 或者,选择省略号 (...) 以打开 “选择非对称密钥 ”对话框。 如果选择用户从用户类型列表中选择映射到非对称密钥的用户,则非对称密钥名称可用。

  6. 选择“确定” 。

其他选项

数据库用户 - 新建”对话框还提供其他四个页面上的选项:拥有的架构、成员资格安全对象扩展属性

  • 拥有的 架构”页列出了可由新数据库用户拥有的所有可能架构。 若要向数据库用户添加或从数据库用户中删除架构,请在此用户拥有的“架构”下,选中或清除架构旁边的复选框。

  • 成员身份 ”页列出了可由新数据库用户拥有的所有可能的数据库成员身份角色。 若要向数据库用户添加角色或删除角色,请在“数据库角色成员身份”下选中或清除角色旁边的复选框。

  • 安全对象 ”页列出了所有可能的安全对象以及可授予登录名的安全对象的权限。

  • 扩展属性 ”页允许向数据库用户添加自定义属性。 此页上提供了以下选项。

    Database
    显示所选数据库的名称。 此字段为只读。

    排序规则
    显示用于所选数据库的排序规则。 此字段为只读。

    属性
    查看或指定对象的扩展属性。 每个扩展属性由与对象关联的元数据的名称/值对组成。

    省略号 (...)
    选择“值”后省略号(...)以打开“扩展属性的值”对话框。 在此更大的位置键入或查看扩展属性的值。 有关详细信息,请参阅 “扩展属性”对话框的值。

    删除
    删除所选扩展属性。

使用 T-SQL 创建用户

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

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

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

    -- Creates the login AbolrousHazem with password '340$Uuxwp7Mcxo7Khy'.  
    CREATE LOGIN AbolrousHazem   
        WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';  
    GO  
    
    -- Creates a database user for the login created above.  
    CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;  
    GO  
    

有关详细信息,请参阅 CREATE USER (Transact-SQL), 其中包含更多 Transact-SQL 示例。

另请参阅