sql >> データベース >  >> RDS >> Sqlserver

Sql サーバー認証アカウントを作成しますか?

    使用できることがわかっているモードは、Windows または SQL Server 認証の 2 つだけです。つまり、Windows アカウントを使用するか、認証に使用できる SQL Server ログインを作成するという 2 つの選択肢しかありません。

    編集:

    SQL Server ログインをプログラムで作成するには、Sql Server Management オブジェクトを使用できます。これを Windows (デスクトップ) から行うか、Web アプリケーションから行うかについて、あなたが言及していないことに気付きました。 Sql Server Management を使用してログインを作成する (または何らかの「管理」を行う) には、コードをより高い特権 (SQL サーバー インスタンスを管理するのに十分な特権を持つローカル アカウントまたはドメイン アカウントなど) で実行する必要があります。

    への参照を追加する必要があります (アセンブリのバージョン 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{} ブロックと配管コードを追加して、より堅牢にすることで、障害が発生した場合に正常に回復できます




    1. 個々の行をカウントするのではなく、すべての行をカウントするSQL

    2. このSQLコードの何が問題になっていますか? (VBA MS Access)

    3. mysqlの更新をログに記録する

    4. postgresデータベースpg_ctlまたはサービスpostgresを開始/停止する正しい方法