SQL Server - 将create table授予架构所有者

时间:2015-04-23 19:18:26

标签: sql-server database

使用SQL Server 2014 Express。我是SQL Server的新手(更熟悉Oracle)。我定义了一个模式,并将用户定义为模式所有者。我似乎找不到允许用户在架构内创建表而不授予db_owner角色的方法。

这对我的数据库不起作用,因为会有多个模式。使用此数据库级角色,即db_owner,用户(架构所有者)可以在任何架构中创建表。

我的目标是让架构所有者用户能够登录数据库并创建表并管理架构,并且只管理自己的架构。

有人可以帮我吗?我非常沮丧。

提前致谢。

1 个答案:

答案 0 :(得分:2)

经过大量研究,我能够找到自己问题的答案:

"创建表格"只是一个数据库级别权限,无法在架构级别分配。

可以将用户定义为架构所有者。如果用户有"创建表"在数据库级别的权限并且是模式所有者,所有表将在他/她拥有的模式中创建。

除非被授予"选择"否则用户无法看到其他模式。架构所有者(或具有更高级别权限的人)在架构级别的权限。如果用户有"选择"在数据库级别,他/她将看到所有模式。