如何为SQL Server中的数据库授予用户读取权限?

Q8Y*_*Q8Y 30 sql t-sql sql-server security ssms

我想授予用户访问具有读写访问权限的特定数据库的权限.用户已在域中可用,但在DB中不可用.

那么,如何通过创建新用户和密码为他们提供访问权限?

有人告诉我,只需指定您希望为用户提供访问权限的用户,域和数据库,而无需创建新的用户和密码.

这是我实施的旧方式.它可以工作,但它创建了一个新的登录和用户,而不是使用域中可用的登录和用户:

use DBName;
create login a_2 with password='Aa123';
create user a_2 for login a_2;
grant insert to a_2;
grant select to a_2;
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 72

这是一个两步过程:

  1. 您需要根据其Windows帐户为该用户创建SQL Server 登录

    CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;
    
    Run Code Online (Sandbox Code Playgroud)
  2. 您需要授予此登录权限才能访问数据库:

    USE (your database)
    CREATE USER (username) FOR LOGIN (your login name)
    
    Run Code Online (Sandbox Code Playgroud)

在数据库中拥有该用户后,您可以为其提供所需的任何权限,例如,您可以为其分配db_datareader数据库角色以读取所有表.

USE (your database)
EXEC sp_addrolemember 'db_datareader', '(your user name)'
Run Code Online (Sandbox Code Playgroud)

  • 没关系'marc_s'...我解决了问题...我缝了我写的域名错了,现在正在工作:)非常感谢;) (2认同)
  • 当我忘记'创建用户登录'时,我总是在这里结束!!;)+ 1 (2认同)
  • 谢谢。为什么 10 页的 Microsoft 官方文档从未显示过该示例? (2认同)
  • @Jurion 因为微软文档是*最好的* (2认同)