创建Sql Server身份验证帐户?

时间:2011-10-26 06:33:39

标签: c# sql-server-2008

我想创建一个Sql Server身份验证帐户,而不是数据库或帐户中的用户。

我的意思是我想创建一个帐户,这样当我启动sql server,使用SQL Transaction或使用C#时,我可以从中登录。

1 个答案:

答案 0 :(得分:4)

我知道您只能使用两种模式:Windows或SQL Server身份验证。这意味着您只能选择两个选项:您可以使用Windows帐户,也可以创建可用于进行身份验证的SQL Server登录。

编辑:

要以编程方式创建sql server登录,可以使用Sql Server Management对象。我注意到你没有说是否要从Windows(桌面)或Web应用程序执行此操作。要使用Sql Server Management创建登录(或执行任何类型的“管理”),代码将需要以更高的权限运行 - 例如具有足够权限来管理SQL Server实例的本地或域帐户。

您需要添加引用(您可以使用程序集的9.0版本):

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");
        }

您需要添加:

using Microsoft.SqlServer.Management.Smo;

您可以添加try {} catch {}块和管道代码,使其更加强大,以便在发生故障时优雅地恢复

相关问题