SQL Azure只读用户无法删除数据库

时间:2015-05-27 11:00:34

标签: sql-server azure azure-sql-database

我创建了一个只读用户ala:

(in master)
CREATE LOGIN reader WITH password='YourPWD';
CREATE USER readerUser FROM LOGIN reader;

(in target db)
CREATE USER readerUser FROM LOGIN reader;
EXEC sp_addrolemember 'db_datareader', 'readerUser';

这非常适用于拒绝用户访问除目标数据库中的表之外的任何操作。

然而,它仍然允许他们从管理工作室删除目标数据库。

我怎样才能否认他们的db删除权?

1 个答案:

答案 0 :(得分:3)

您能否澄清数据库删除权利的含义?你的意思是DROP数据库?如果是这样,DROP DATABASE的权限在master中。因此,请确保登录不是dbmanager角色的一部分。

如果您打算从表中删除数据,那么默认情况下,数据库中的用户没有该权限,除非您在db_datawriter或db_owner等角色中添加或明确授予DELETE权限。

您可以通过执行以下操作来检查用户的权限:

execute as user = 'readerUser';
select * from fn_my_permissions (NULL, 'DATABASE');
revert;
go