web-dev-qa-db-ja.com

View Server状態の付与-非SAユーザーがAzure SQLを使用することは可能ですか?

SQL Server AzureのシステムDMVを使用して、いくつかのサーバー統計を収集するいくつかのスケジュールされたジョブをセットアップしようとしています。なしSAユーザーが 'sys.dm_os_schedulers'を使用している場合、エラー(以下)が発生します。クエリはサーバー管理者に対して正常に機能します。

オブジェクト「サーバー」、データベース「マスター」のサーバー状態の表示権限が拒否されました

ユーザーはMasterDBのDBManagerロールのメンバーであり、ユーザーDBのdb_ownerロールのメンバーであり、ユーザーdbにVIEW DATABASE STATEを追加しています。

サーバー管理者アカウント(最初のデータベース作成時にポータル経由で設定)を使用して、Master DBで[サーバーの状態を[ユーザー]に付与]しようとしました。ただし、このエラー:-

付与者にはGRANT権限がありません。

これを許可することは可能ですか? (これは私が見たすべての投稿が言っていることです)、またはどのようにしてサーバー管理者アカウントでそれを行うのですか?

2
DBA-PJS

GRANT VIEW SERVER STATEは、Azure SQLデータベースではサポートされていません。

GRANTサーバー権限(Transact-SQL)

sys.dm_os_schedulersを使用するには、次のものが必要です。

SQL Database Premium Tierでは、データベースのVIEW DATABASE STATE権限が必要です。 SQLデータベースの標準層と基本層では、サーバー管理者またはAzure Active Directory管理者アカウントが必要です。

リファレンス: https://docs.Microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-schedulers-transact-sql

これをテストしている間、SAアカウントを使用してmasterデータベースのユーザーにVIEW DATABASE STATEを付与することもできませんでした。

SAアカウントを使用してユーザーデータベースにVIEW DATABASE STATEを付与します。次に、ユーザーデータベースのコンテキストでSELECT * FROM sys.dm_os_schedulersを実行します。結果セットを取得することができました。

1
SqlWorldWide