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权限过于自由,这应该是这样做的方法.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...