SQL Server AzureのシステムDMVを使用して、いくつかのサーバー統計を収集するいくつかのスケジュールされたジョブをセットアップしようとしています。なしSAユーザーが 'sys.dm_os_schedulers'を使用している場合、エラー(以下)が発生します。クエリはサーバー管理者に対して正常に機能します。
オブジェクト「サーバー」、データベース「マスター」のサーバー状態の表示権限が拒否されました
ユーザーはMasterDBのDBManagerロールのメンバーであり、ユーザーDBのdb_ownerロールのメンバーであり、ユーザーdbにVIEW DATABASE STATEを追加しています。
サーバー管理者アカウント(最初のデータベース作成時にポータル経由で設定)を使用して、Master DBで[サーバーの状態を[ユーザー]に付与]しようとしました。ただし、このエラー:-
付与者にはGRANT権限がありません。
これを許可することは可能ですか? (これは私が見たすべての投稿が言っていることです)、またはどのようにしてサーバー管理者アカウントでそれを行うのですか?
GRANT VIEW SERVER STATE
は、Azure SQLデータベースではサポートされていません。
sys.dm_os_schedulers
を使用するには、次のものが必要です。
SQL Database Premium Tierでは、データベースのVIEW DATABASE STATE権限が必要です。 SQLデータベースの標準層と基本層では、サーバー管理者またはAzure Active Directory管理者アカウントが必要です。
これをテストしている間、SAアカウントを使用してmasterデータベースのユーザーにVIEW DATABASE STATE
を付与することもできませんでした。
SAアカウントを使用してユーザーデータベースにVIEW DATABASE STATE
を付与します。次に、ユーザーデータベースのコンテキストでSELECT * FROM sys.dm_os_schedulers
を実行します。結果セットを取得することができました。