Fal*_*inn 2 schema security sql-server role t-sql
我正在使用 GUI 工具在我的 SQL Server 2016 数据库中上传数据。用于上述任务的用户已被授予 sysadmin 权限,我创建了一个专用架构来存储上述数据。这个架构是拥有的,默认为上述用户。问题是,当我上传数据时,它存储在 dbo 模式而不是专用模式中,我无法从该用户那里撤销 sysadmin priv。
请让我知道如何在不撤销 sysadmin priv 的情况下将数据上传到这个专用模式?
谢谢
sysadmin
固定服务器角色的成员使用非dbo
架构的唯一方法是使用架构名称明确限定其对象名称:
CREATE TABLE MySchema.TableName (...
Run Code Online (Sandbox Code Playgroud)
代替:
CREATE TABLE TableName (...
Run Code Online (Sandbox Code Playgroud)
没有办法解决这个问题。ALTER USER的文档(在“备注”部分)甚至有一个注释:
? 重要
如果用户是sysadmin固定服务器角色的成员,则忽略 DEFAULT_SCHEMA 的值。sysadmin固定服务器角色的所有成员的默认架构为
dbo
.
这很可能是因为作为sysadmin
固定服务器角色成员的登录名(实例级)成为dbo
所有数据库中的用户(数据库级)。要验证这一点,请以 a 的任何非sa
登录名登录sysadmin
并执行以下操作:
SELECT SYSTEM_USER AS [Login], CURRENT_USER AS [User];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
477 次 |
最近记录: |