問題タブ [application-role]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
286 参照

sql-server - パスワードの変更後、SQL Server がアプリケーション ロールを設定できない

もともと、私のアプリケーションはコマンドでアプリケーションの役割を変更できます。

そして、アプリケーションロールのパスワードを「PASS02」に変更したところ、

動作せず、間違ったパスワードを返します。

コードを次のように変更した後、動作することがわかりました

元のコードが機能している理由は何ですか? そして、そもそもパスワードはどのように設定されたのでしょうか?

0 投票する
2 に答える
1239 参照

c# - アプリケーション ロールが DBCC CHECKDB を実行できるようにする

私の (C#) アプリケーションが実行され、アプリケーション ロールを使用して SQL サーバー データベースに接続します。

ただし、実行するにはそれが必要ですDBCC CHECKDBが、例外が発生します。

ユーザー 'MyAppRole' には、データベース 'MyDatabase' に対して DBCC checkdb を実行する権限がありません。

このコマンドを実行するには、このアクションを実行する権限をアプリケーション ロールに付与するだけではなく、ロールのメンバーである必要があることがわかりましたdb_owner

私が試したこと:

1: SQL Management Studio で、このデータベースの MyAppRole のプロパティで db_owner ボックスにチェックを入れます。ただし、同じ例外が発生します。

2: db_owner ロールを追加します。

しかし、アプリケーションを実行すると、DBCC CHECKDB を実行する時点で次の例外が発生します。

サーバー プリンシパル "MYDOMAIN\MyWindowsUsername" は、現在のセキュリティ コンテキストではデータベース "MyDatabase" にアクセスできません。

SQL Managment Studio では、Windows 認証を使用してログインした後、コマンドを簡単に実行できるため、これは特に混乱を招きます。

3: 所有者として実行するストアド プロシージャの作成

...そして私のMyAppRole 実行許可が与えられました。しかし、私はまだ例外を受け取ります:

サーバー プリンシパル "MYDOMAIN\MyWindowsUsername" は、現在のセキュリティ コンテキストではデータベース "MyDatabase" にアクセスできません。

...これは、SQL Management Studio からこのストアド プロシージャを実行しようとした場合にも発生します。

4: アプリケーション ロールに "CONTROL" パーミッションを付与します (これらのいくつかは、アプリケーション ロールの目的を無効にしているように見えますが、とにかく、ストローをつかみます)

ただし、アプリケーションがチェックを実行しようとすると、元のエラーが発生します。

ユーザー 'MyAppRole' には、データベース 'MyDatabase' に対して DBCC checkdb を実行する権限がありません

このチェックを実行する権限をアプリケーション ロールに正しく付与するにはどうすればよいですか?