无法阻止某些用户删除表

时间:2021-01-05 13:38:01

标签: sql azure ddl azure-synapse

我找不到任何方法来阻止某些角色的用户删除表。

我使用的代码如下

CREATE ROLE external_users;  
grant Select,Update,Delete,Alter,Execute,Insert,Create View,create Table on database::db_1 to external_users;
deny ALTER ANY USER,ALTER ANY ROLE,CREATE ROLE on database::db_1 to external_users;

--Creating a user in db_1 for the user and then adding it to the above role

CREATE USER user for login user;  
EXEC sp_addrolemember 'external_users', 'user';

我拒绝了 DELETE 权限,但用户也可以删除表。(不能拒绝 ALTER 权限,因为我希望用户创建表)

我还创建了一个触发器,但不知道如何在特定用户或角色上启用它。

基本上,我想阻止某些角色的用户删除表(其他角色的用户可以执行这些功能)。他们可以创建表,但不能删除表。

1 个答案:

答案 0 :(得分:0)

如果你能ALTER一张桌子,你就可以DROP一张桌子。它内置于权限中。

https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-table-transact-sql?view=sql-server-ver15

相关问题