在SQL Azure中,如何创建只读用户

Sam*_*ron 29 sql t-sql sql-server azure-sql-database

我想创建一个SQL Azure用户并授予她对少数几个DB的只读访问权限,我可以使用哪个脚本来实现这一目标?

Sam*_*ron 63

纯TSQL脚本非常混乱,SQL Azure会禁用该USE命令,因此您无法打开与每个数据库的连接,以便为用户提供读取访问权限.

这是模式的要点.

在Master DB中:

CREATE LOGIN reader WITH password='YourPWD';
-- grant public master access
CREATE USER readerUser FROM LOGIN reader;
Run Code Online (Sandbox Code Playgroud)

在每个目标DB中(需要单独的连接)

CREATE USER readerUser FROM LOGIN reader;
EXEC sp_addrolemember 'db_datareader', 'readerUser';
Run Code Online (Sandbox Code Playgroud)

  • 古老的答案和旧的评论,但对于任何感兴趣的人...我认为他在主DB中包含创建用户,因此用户(readerUser)可以通过Management Studio登录到服务器实例 - 如果用户不存在于master下,他们登录时无法在Management Studio中使用SQL身份验证. (8认同)
  • 为什么在主DB中有"创建用户..."?在我看过的所有文档中,它只表示你必须在目标数据库中创建用户......只是好奇...... (4认同)
  • 在对象级别授予权限或为所选表格授予****检查[this](http://stackoverflow.com/questions/3998634/sql-server-2008-how-do-i-grant-privileges-to-a-用户名)和[this](http://stackoverflow.com/questions/11086967/how-to-permit-a-sql-server-user-to-insert-update-delete-data-but-not-alter-sche ),希望有所帮助. (2认同)