2015-04-22 57 views
0

我想通過使用存儲過程將用戶添加到我們的數據庫。我正在使用以下代碼添加登錄和用戶到SQL2005

declare @username as varchar(50) 
set @username ='test1' 
DECLARE @SQL NVARCHAR(4000); 
begin 

SET @SQL = 'CREATE LOGIN ' + @username + ' WITH PASSWORD = ''12345'',  DEFAULT_DATABASE=[dbname], DEFAULT_LANGUAGE=[British],  CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF'; 

EXECUTE(@SQL); 

end 
EXEC sp_grantdbaccess @username; 
EXEC SP_ADDROLEMEMBER N'db_owner', @username, 

這可以工作,但會爲每個新用戶生成一個模式。我想將用戶附加到現有的模式。任何幫助將不勝感激

回答

0

您應該用CREATE USER替換sp_grantdbaccess。過程sp_grantdbacess將被棄用。

您可以使用CREATE USER附加默認架構。 From http://msdn.microsoft.com/en-us/library/ms173463(SQL.105).aspx

CREATE USER user_name 
    [ { { FOR | FROM } 
     { 
     LOGIN login_name 
     | CERTIFICATE cert_name 
     | ASYMMETRIC KEY asym_key_name 
     } 
     | WITHOUT LOGIN 
    ] 
    [ WITH DEFAULT_SCHEMA = schema_name ] 
0

「登錄」授予主要條目到服務器。

「用戶」授予一個登錄條目到單個數據庫中。

一個「登錄」可以與許多用戶(每個數據庫都有一個)相關聯。

因此,您應該能夠在數據庫級別定義模式。

相關問題