不遵守SQL Server 2008默认架构吗?


9

我们只是将SQL 2008数据库复制到另一台服务器上,以进行测试。登录的典型用户使用某些架构中的某些对象。假设它是user foo和schema bar

foo的默认架构bar同时在实例和数据库级别。但是,在foo登录时,如果bar不使用标准名称,则无法在架构中找到任何对象。

为什么默认模式在这里不起作用?

Answers:


13

在SQL Server上具有foo用户sysadmin权限吗?因为如果这样做,则默认情况下,任何sysadmin用户都将拥有分配的架构dbo,而与特定数据库的用户属性中设置的内容无关。

因此,为了拥有默认模式,用户需要具有数据库角色(例如db_owner,db_datawriter等),而不是服务器角色sysadmin。

告诉我是否不是您的情况。


1
你是神,我向你鞠躬致敬,直到我碰到这个,我才感到困惑。
詹斯(Jens)2012年

1

可能会出现此问题的另一种情况(SQL 2008 R2)...

我有一个用户链接到SQL身份验证登录名,该用户试图与现有模式关联。登录名没有sysadmin权限,因此上述解决方案没有帮助。

我最终发现数据库仍以SQL 2000兼容模式配置。更改为SQL 2005解决了该问题。


奇怪的是,我似乎遇到了这个问题(用户链接到SQL身份验证登录名,我试图与现有架构关联),除了我的兼容性级别是“ SQL Server 2016(130)”
tbone

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.