2013-12-09 31 views
1

我已經創建使用實體框架代碼首先爲它創建數據庫自動如果不存在,但首先,我需要一個用戶訪問數據庫如何在沒有SQL Server Management Studio的情況下創建新的SQL Server 2012登錄?

我的系統,但我知道只有創建的SQL Server的用戶與SQL Server管理Studio,但我處於一種情況,計算機安裝了SQL Server 2012,但沒有安裝SQL Server Management Studio

如何在沒有SQL Server Management Studio的情況下創建新的數據庫用戶?或者像Entity Framework一樣使用任何解決方案創建數據庫自動?

回答

1

若要使用SQL Server的Windows身份驗證

CREATE LOGIN [Domain\Windows_UserName] FROM WINDOWS; 
GO 

然後,你必須與登錄

CREATE USER [Domain\Windows_UserName] FOR LOGIN [Domain\Windows_UserName]; 
GO 

對於SQL Server身份驗證創建用戶Windows域帳戶登錄

CREATE LOGIN Login_Name WITH PASSWORD = 'ksblaksvfdh&'; 
GO 
+1

對不起,我是初學者,我在哪裏可以把這個代碼? – Lai32290

0

您可以使用SQL Server SMO以編程方式創建數據庫用戶,並在您的EF代碼優先DatabaseInitializer中第一次添加它。儘管如此,請謹慎使用;)

添加引用以下內容。

Microsoft.SqlServer.ConnectionInfo 
Microsoft.SqlServer.Smo 
Microsoft.SqlServer.SqlEnum 

然後創建一個SQL登錄,也將用戶添加到您的目標數據庫源代碼的

var serverName = "."; // Your SQL Server Instance name 
var databaseName = "Test"; // Your database name 
var loginName = "testuserY"; // Your login name (should not exist - or you should add code to check if the login exists) 


Server svr = new Server(serverName); 
var db = svr.Databases[databaseName]; 
if (db != null) 
{ 
    // You probably want to create a login and add as a user to your database 
    Login login = new Login(svr, loginName); 
    login.DefaultDatabase = "master"; // Logins typically have master as default database 
    login.LoginType = LoginType.SqlLogin; 
    login.Create("foobar", LoginCreateOptions.None); // Enter a suitable password 
    login.Enable(); 

    User user = new User(db, loginName); 
    user.UserType = UserType.SqlLogin; 
    user.Login = login.Name; 
    user.Create(); 
    // add a role 
    user.AddToRole("db_owner"); 
} 

來源:https://stackoverflow.com/a/7899436/325521

+0

這個'Login'是Microsoft.SqlServer.Smo中的一個類。它就像登錄訪問數據庫一樣? – Lai32290

+0

是的。我已經使用了一個類似於這個腳本的腳本爲主應用程序的'web.config'中引用的應用程序創建數據庫用戶。請注意,運行此特定腳本的sql server用戶上下文必須提升,並且有足夠的權限來創建新用戶,分配模式/角色和表,對象訪問等。這就是爲什麼我說慎重使用的原因:) – Shiva

相關問題