GenerateDatabaseRightsScript メソッド (WMI MSReportServer_ConfigurationSetting クラス)
レポート サーバー データベースへのユーザー権限の付与に使用できる SQL スクリプトを生成します。
構文
Public Sub GenerateDatabaseRightsScript(UserName as String,_
IsWindowsUser as Boolean, ByRef Script as String,
ByRef HRESULT as Int32)
public void GenerateDatabaseRightsScript (string UserName,
boolean IsWindowsUser, out string Script, out sint32 HRESULT);
パラメータ
- UserName
スクリプトで権限を与えるユーザーのユーザー名または Windows セキュリティ識別子 (SID)。
- IsWindowsUser
指定されたユーザー名が Windows ユーザーか SQL Server ユーザーかを示すブール値。
- Script
[out] 生成された SQL Server スクリプトを含む文字列。
- HRESULT
[out] 呼び出しの成功または失敗を示す値。
戻り値
メソッド呼び出しの成功または失敗を示す HRESULT を返します。値 0 は、メソッド呼び出しが成功したことを示します。0 以外の値は、エラーが発生したことを示します。
解説
IsWindowsUser を true に設定した場合、UserName は "domain\username" 形式にします。
IsWindowsUser を true に設定した場合、生成されるスクリプトはレポート サーバー データベースを既定のデータベースとして設定し、ユーザーに SQL Server へのログイン権限を与えます。また、レポート サーバー データベース、レポート サーバー一時データベース、マスタ データベース、および MSDB システム データベースの RSExec ロールを与えます。
IsWindowsUser を true に設定した場合、メソッドは入力として標準 Windows SID を受け付けます。標準 Windows SID またはサービス アカウント名が指定されると、ユーザー名文字列に変換されます。データベースがローカルである場合、アカウントはアカウントのローカライズされた正しい表現に変換されます。データベースがリモートである場合、アカウントはコンピュータのアカウントとして表されます。
次の表は、変換されるアカウントとそのリモート表現を示しています。
変換されるアカウントまたは SID | 共通名 | リモート名 |
---|---|---|
(S-1-5-18) |
Local System |
<Domain>\<ComputerName>$ |
.\LocalSystem |
Local System |
<Domain>\<ComputerName>$ |
ComputerName\LocalSystem |
Local System |
<Domain>\<ComputerName>$ |
LocalSystem |
Local System |
<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\NetworkService |
Local Service |
エラー (下記参照) |
Windows 2000 では、組み込みアカウントを使用し、レポート サーバー データベースがリモートである場合、エラーが返されます。
LocalService 組み込みアカウントを指定し、レポート サーバー データベースがリモートである場合、エラーが返されます。
IsWindowsUser が true であり、UserName に指定した値を変換する必要がある場合、WMI プロバイダはレポート サーバー データベースが同じコンピュータにあるかリモート コンピュータにあるかを確認します。インストールがローカルであるかどうかを確認するため、WMI プロバイダは以下の値一覧に対して DatabaseServerName プロパティを評価します。一致が見つかった場合、データベースはローカルです。見つからなかった場合、リモートです。比較では大文字小文字を区別しません。
DatabaseServerName の値 | 例 |
---|---|
“.” |
. |
"(local)" |
(local) |
"LOCAL" |
LOCAL |
localhost |
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 ユーザーが既に存在している必要があります。
レポート サーバーにレポート サーバー データベースが指定されていない場合、GrantRightsToDatabaseUser を呼び出すとエラーが返されます。
生成されたスクリプトは、SQL Server 2000 および SQL Server 2005 をサポートします。
要件
名前空間 :root\Microsoft\SqlServer\ReportServer\v9\Admin
プラットフォーム : Windows Server 2003 Datacenter Edition、Windows Server 2003 Enterprise Edition、Windows Server 2003 Standard Edition、Windows Vista、Windows XP Professional Service Pack 2 (SP2) または Service Pack 1 (SP1)、および Windows 2000 (すべてのバージョン)
参照
関連項目
MSReportServer_ConfigurationSetting メンバ
MSReportServer_ConfigurationSettingForSharePoint メンバ