如何创建在数据库中具有只读访问权限但对数据库中的模式具有ALL特权的用户?

时间:2019-10-11 17:10:20

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

我试图创建一个可以在AzureSQL中选择数据库中所有表的用户。但有特权在数据库中根据自己的模式(ODS)进行插入,删除,更新?

1 个答案:

答案 0 :(得分:0)

以下是有关创建用户的示例,该用户可以选择Azure SQL数据库中数据库中的所有表(只读):

--running in master db
USE [master]
GO
CREATE LOGIN [sagarreadonly] WITH PASSWORD='password'
GO
-- running in Azure SQL DB
USE [DataEncryptDemo]
GO
CREATE USER [sagarreadonly] FOR LOGIN [sagarreadonly] WITH DEFAULT_SCHEMA = Marketing; 
GO
EXEC sp_addrolemember 'db_datareader', 'sagarreadonly';
GO

有关数据库角色的更多详细信息,请参见Database-Level Roles

由于用户已添加到“ db_datareader”角色,因此它是只读用户,并且无权在数据库中对其自己的模式(ODS)进行插入,删除和更新。您无法做到这一点,这是矛盾的。

希望这会有所帮助。