我创建了一个只读用户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删除权?
答案 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