問題タブ [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.
sql-server - パスワードの変更後、SQL Server がアプリケーション ロールを設定できない
もともと、私のアプリケーションはコマンドでアプリケーションの役割を変更できます。
そして、アプリケーションロールのパスワードを「PASS02」に変更したところ、
動作せず、間違ったパスワードを返します。
コードを次のように変更した後、動作することがわかりました
元のコードが機能している理由は何ですか? そして、そもそもパスワードはどのように設定されたのでしょうか?
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 を実行する権限がありません
このチェックを実行する権限をアプリケーション ロールに正しく付与するにはどうすればよいですか?