【问题标题】:User and DB schema conflict用户和数据库架构冲突
【发布时间】:2012-05-29 14:24:45
【问题描述】:

我想要一个用户和一个同名的数据库架构。执行以下脚本

CREATE DATABASE db1
GO
EXECUTE sp_addlogin @loginame = 'abc',
                    @passwd   = '123456789',
                    @defdb    = 'db1'
GO
USE db1
GO
EXECUTE sp_grantdbaccess @loginame   = 'abc', 
                         @name_in_db = 'abc'
GO
CREATE SCHEMA abc
GO

给我错误:

消息 2714:数据库中已经有一个名为“abc”的对象。

有什么方法可以在不使用不同名称的情况下处理这个问题?

【问题讨论】:

    标签: sql-server sql-server-2008 database-schema


    【解决方案1】:

    我建议不要为此使用 sp_ 过程,并且在您将它们添加为该数据库中的用户之前,我不会将数据库设为默认值。

    CREATE DATABASE db1;
    GO
    CREATE LOGIN abc WITH PASSWORD = '123456789';
    GO
    USE db1;
    GO
    CREATE USER abc FROM LOGIN abc;
    GO
    ALTER LOGIN abc WITH DEFAULT_DATABASE = db1;
    GO
    CREATE SCHEMA abc;
    GO
    
    -- if you want them to own the schema:
    ALTER AUTHORIZATION ON schema::abc TO abc;
    
    -- if you just want abc to be their default schema:
    ALTER USER abc WITH DEFAULT_SCHEMA = abc;
    GO
    

    【讨论】:

      猜你喜欢
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 2013-07-14
      • 1970-01-01
      相关资源
      最近更新 更多