-1

我有一个用户(d2user),这个用户的角色只能读写。所以我们添加了角色db_datareaderdb_datawriter使用了sp_addrolemembersys proc。

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

这在它不应该工作的地方工作得很好。

 ALTER SCHEMA guest TRANSFER dbo.TestData;
 GO 

我试图限制它使用:

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

但是没有运气我得到不正确的语法错误,这个用户仍然能够改变模式..有人可以帮忙吗?

4

1 回答 1

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;
于 2013-05-15T09:34:27.267 回答