4

.NET経由でDMOAPIを使用して、SQL Server2000Agentのジョブスケジューリング機能の代替インターフェイスを提供しています。動作するコードは次のようになります。

using SQLDMO;

internal class TestDmo {
    public void StartJob() {
        SQLServerClass sqlServer = new SQLServerClass();
        sqlServer.Connect("MyServerName", "sql_user_id", "p@ssword"); // no trusted/SSPI overload?

        foreach (Job job in sqlServer.JobServer.Jobs) {
            if (!job.Name.Equals("MyJob")) continue;

            job.Start(null);
        }
    }
}

すべてが上記の形式で機能します(uid /pwdが提供されたSQLServer認証)が、信頼できるユーザー(別名、SSPI、信頼できる接続)として認証するオプションも提供したいと思います。

これはDMOAPIで可能ですか?もしそうなら、どのように?

注:SQLServerClass.Connectメソッドにはオーバーロードがないようです。ユーザーIDとパスワードにnull値を渡そうとしましたが、Googleはまだ役に立ちませんでした。何か案は?

4

3 に答える 3

4

ドキュメントから:

object.Connect([ServerName]、[Login]、[Password])

[...]

Login引数とPassword引数を使用して、SQLServer認証に使用される値を指定します。接続にWindows認証を使用するには、 Connectメソッドを呼び出す前にLoginSecureプロパティをTRUEに設定します。LoginSecureがTRUEの場合、Login引数とPassword引数で指定された値はすべて無視ます

したがって、Connectを呼び出す前に、LoginSecureプロパティをに設定する必要があります。true次に、最後の2つのパラメーターにどの値を渡すかは重要ではありません。

于 2011-04-01T17:17:46.440 に答える
2

もちろん、LoginSecure プロパティを使用できます。

SQLServerClass sqlServer = new SQLServerClass();
sqlServer.LoginSecure = true;
sqlServer.Connect("MyServerName", null, null);

(実際には、null または空の文字列を渡す必要があるかどうかは覚えていません...)

于 2011-04-01T17:14:14.737 に答える
2

SQLServerClass.LoginSecure = trueユーザー名とパスワードを設定して null のままにします。

詳細については、こちらをご覧ください。LoginSecureただし、それが非推奨であることに気付きました。どうやら、SQL-DMO は SMO に取って代わられたようです。

于 2011-04-01T17:14:55.790 に答える