我有一些 MS Access 代码,它使用 ODBCDirect 在 SQL 2008 R2 DB 中执行一些 sql 语句。
sql 语句不指定架构名称,因此随后使用 windows 用户作为架构名称执行,而不是我正在寻找的结果。架构应该是 dbo。
所有用户都属于一个 Windows 组,它是一个 SQL 登录名。
我读到,如果我将架构 dbo 的所有者更改为 windows 组,则未指定架构的 sql 语句将默认为 dbo。
所以我试图将架构的所有者更改为 windows 组但收到消息
架构“dbo”的更改失败
我似乎也更改了对数据库中模式的更改权限。
如果是这样,sql 是否允许您更改所有者???
马尔科姆
您无法更改“dbo”的所有者,因为它是一个系统架构。来自ALTER AUTHORIZATION,“特殊情况和条件”:
SCHEMA
... 无法更改 sys、dbo 或 information_schema 的所有者
而且您还不能为 Windows 登录设置默认架构(还)。
这在两个方面很重要:
基本上,您有两种选择:
第三个选项既丑陋又危险,是使 Windows 登录为“系统管理员”,这意味着它们将始终映射到 dbo。我不推荐这个
就个人而言,我不再使用 dbo 模式:请参阅dba.se(以及那里的进一步链接)
归档时间: |
|
查看次数: |
2546 次 |
最近记录: |