微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server – 使用SQL Server(2008),您可以在模式中授予create table权限吗?

sql Server 2008中使用安全性,我正在尝试授予用户CREATE TABLE权限,但仅限于特定架构内. CREATE TABLE权限是否仅适用于数据库级别?

我可以限制用户仅在架构中创建表吗?

我试过了:

USE [databasename]
GRANT CONTROL ON Schema :: [schemaname] TO [username]
GO

USE [databasename]
GRANT ALTER ON Schema :: [schemaname] TO [username]
GO

但是,用户仍然无法在目标模式中创建表.直到我运行它,用户才能创建一个表:

USE [databasename]
GRANT CREATE TABLE to [username]
GO

GRANT

GRANT Database Permissions

解决方法

根据sql Server 2008的帮助:

Requires CREATE TABLE permission in the database and ALTER permission on the schema in which the table is being created.

我刚刚在测试数据库中使用EXECUTE AS对此进行了测试,并且我能够在具有ALTER权限的模式中创建一个表,但是在dbo模式中没有(我没有授予ALTER权限).因此,只要你没有对模式的ALTER权限过于自由,这应该是这样做的方法.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐