阻止对用户的架构更改权限

时间:2013-05-15 09:31:06

标签: sql sql-server-2008-r2

我有一个用户(d2user),此用户的角色只能读写..所以我们使用db_datareader sys proc添加了角色db_datawritersp_addrolemember

但是当我使用此用户登录时..我可以更改此用户拥有的表模式。

这完全适用于不应该工作的地方。

 ALTER SCHEMA guest TRANSFER dbo.TestData;
 GO 

我尝试使用以下方法限制它:

 REVOKE Alter any schema ON ROLE::db_datareader FROM d2user CASCADE;

然而没有运气我得到错误的语法错误,这个用户仍然可以改变架构..有人可以帮助plss吗?

1 个答案:

答案 0 :(得分:0)

用户拥有ALTER权限,因为他们拥有

之一
  • db_ddl_admin
  • 的db_owner
  • 系统管理员

您可以撤销ddl_admin,但其他2 总是有权更改内容

您可以使用这些

检查角色权限
EXEC sp_helprolemember; -- uses sys.database_role_members if you prefer to query this
EXEC sp_helpsrvrolemember;