SQL Server 架构所有者权限

And*_*ock 5 t-sql sql-server

如果我做:

CREATE SCHEMA [test] AUTHORIZATION [testuser]
Run Code Online (Sandbox Code Playgroud)

testuser似乎对架构没有任何权限,这是正确的吗?我认为作为拥有架构的主体,您可以完全控制它吗?

我需要授予什么权限才能testuser完全控制test架构?

编辑: “完全控制”是指 CRUD 表、视图、sprocs 等的能力

编辑:这是我的完整代码:

CREATE DATABASE [testdb]
Go
USE [testdb]

CREATE LOGIN [andrewbdesktop\testuser] FROM WINDOWS
Go

CREATE USER [andrewbdesktop\testuser] FROM LOGIN [andrewbdesktop\testuser]
Go

CREATE SCHEMA [test]
    AUTHORIZATION [andrewbdesktop\testuser]
Go

ALTER USER [andrewbdesktop\testuser] WITH DEFAULT_SCHEMA = [test]
Run Code Online (Sandbox Code Playgroud)

谢谢

Cor*_*ory 5

默认情况下,模式所有者可以

  • 授予架构内任何对象的权限
  • 如果架构为空,则将其删除
  • 删除架构中的任何对象

默认情况下,模式所有者不能

  • 在架构中创建对象。DDL 事件的范围不限于架构级别,而是数据库级别。


Dav*_*kle 1

我相信,通过您的声明,您使该用户成为架构的所有者,因此默认情况下它应该已经完全控制该架构中的对象。

如果您想要更细粒度的控制,您可以执行以下语句:

GRANT EXECUTE ON SCHEMA::test TO testuser
GRANT INSERT ON SCHEMA::test TO testuser
GRANT SELECT ON SCHEMA::test TO testuser
GRANT UPDATE ON SCHEMA::test TO testuser
GRANT DELETE ON SCHEMA::test TO testuser
Run Code Online (Sandbox Code Playgroud)