ConfigurationSetting メソッド - GenerateDatabaseRightsScript
レポート サーバー データベースへのユーザー アクセス権の付与に使用できる SQL スクリプトを生成します。 さらに、レポート サーバーの実行に必要な他のデータベースへのアクセス権を付与します。 呼び出し元は、SQL Server データベース サーバーに接続して、スクリプトを実行する必要があります。
構文
Public Sub GenerateDatabaseRightsScript(ByVal UserName As String, _
ByVal DatabaseName As String, ByVal IsRemote As Boolean, _
ByVal IsWindowsUser As Boolean, ByRef Script As String, _
ByRef HRESULT As Int32)
public void GenerateDatabaseRightsScript(string UserName, string DatabaseName, bool IsRemote, bool IsWindowsUser, out string Script,
out Int32 HRESULT);
パラメーター
UserName
スクリプトで権限を付与するユーザーのユーザー名または Windows セキュリティ識別子 (SID)。
DatabaseName
スクリプトによってユーザーにアクセス権が付与されるデータベース名。
IsRemote
データベースがレポート サーバーに対してリモートであるかどうかを示すブール値。
IsWindowsUser
指定されたユーザー名が Windows ユーザーか SQL Server ユーザーかを示すブール値。
[スクリプト]
[out] 生成された SQL Server スクリプトを含む文字列。
HRESULT
[out] 呼び出しの成功または失敗を示す値。
戻り値
メソッド呼び出しの成功または失敗を示す HRESULT を返します。 値 0 は、メソッド呼び出しが成功したことを示します。 0 以外の値は、エラーが発生したことを示します。
解説
DatabaseName が空の場合、IsRemote は無視され、レポート サーバーの構成ファイルの値がデータベース名に使用されます。
IsWindowsUser を true に設定した場合、UserName は <domain>\<username>
形式で指定する必要があります。
IsWindowsUser を true に設定した場合、生成されたスクリプトによって、レポート サーバー データベースが既定のデータベースとして設定され、SQL Server へのログイン権限がユーザーに付与されます。また、レポート サーバー データベース、レポート サーバー一時データベース、メイン データベース、および MSDB システム データベースの RSExec ロールが付与されます。
IsWindowsUser を trueに設定した場合、メソッドは入力として標準 Windows SID を受け取ります。 標準 Windows SID またはサービス アカウント名を指定すると、名前はユーザー名文字列に変換されます。 データベースがローカルである場合、アカウントはアカウントのローカライズされた正しい表現に変換されます。 データベースがリモートである場合、アカウントはコンピューターのアカウントとして表されます。
次の表は、変換されるアカウントとそのリモート表現を示しています。
変換されるアカウントまたは SID | 共通名 | リモート名 |
---|---|---|
(S-1-5-18) | [ローカル システム] | <Domain>\<ComputerName>$ |
.\LocalSystem | [ローカル システム] | <Domain>\<ComputerName>$ |
ComputerName\LocalSystem | [ローカル システム] | <Domain>\<ComputerName>$ |
LocalSystem | [ローカル システム] | <Domain>\<ComputerName>$ |
(S-1-5-20) | Network Service | <Domain>\<ComputerName>$ |
NT AUTHORITY\NetworkService | Network Service | <Domain>\<ComputerName>$ |
(S-1-5-19) | Local Service | エラー |
NT AUTHORITY\LocalService | Local Service | エラー |
Windows 2000 では、組み込みアカウントを使用し、レポート サーバー データベースがリモートである場合、エラーが返されます。
LocalService 組み込みアカウントを指定し、レポート サーバー データベースがリモートである場合、エラーが返されます。
IsWindowsUser が true である場合、WMI プロバイダーはレポート サーバー データベースが同じコンピューターにあるかリモート コンピューターにあるかを確認します。 この決定は、UserName で指定された値を変換する必要があるときに行われます。 インストールがローカルであるかどうかを確認するため、WMI プロバイダーは以下の値一覧に対して DatabaseServerName プロパティを評価します。 一致が見つかった場合、データベースはローカルです。 見つからなかった場合、リモートです。 比較では大文字と小文字は区別されません。
DatabaseServerName の値 | 例 |
---|---|
"." | |
"(local)" | |
"LOCAL" | |
localhost | |
<Machinename> | testlab14 |
<MachineFQDN> | example.redmond.microsoft.com |
<IPAddress> | 180.012.345,678 |
IsWindowsUser を true に設定した場合、WMI プロバイダーによって、LookupAccountName が呼び出されてアカウントの SID が取得され、次に LookupAccountSID が呼び出されて SQL Server スクリプトに配置する名前が取得されます。 このアクションを行うと、使用するアカウント名は必ず SQL Server 検証に合格します。
IsWindowsUser を falseに設定した場合、生成されたスクリプトによって、レポート サーバー データベース、レポート サーバー一時データベース、および MSDB データベースの RSExec ロールが付与されます。
IsWindowsUser を false に設定した場合、スクリプトの実行を成功させるには、SQL Server に SQL Server ユーザーが既に存在している必要があります。
レポート サーバーにレポート サーバー データベースが指定されていない場合、GrantRightsToDatabaseUser を呼び出すとエラーが返されます。
生成されたスクリプトは、SQL Server 2000 (8.x)、SQL Server 2005、および SQL Server 2008 (10.0.x) をサポートします。
要件
名前空間: root\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\Admin