Metode ConfigurationSetting - GenerateDatabaseRightsScript

Menghasilkan skrip SQL yang dapat Anda gunakan untuk memberikan akses pengguna ke database server laporan. Selain itu, ini memberikan akses ke database lain yang diperlukan agar server laporan dapat berjalan. Pemanggil harus tersambung ke server database SQL Server dan menjalankan skrip.

Sintaks

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);  

Parameter

UserName
Nama pengguna atau pengidentifikasi keamanan Windows (SID) pengguna tempat skrip memberikan hak.

DatabaseName
Nama database tempat skrip memberikan akses ke pengguna.

IsRemote
Nilai Boolean untuk menunjukkan apakah database jarak jauh dari server laporan.

IsWindowsUser
Nilai Boolean yang menunjukkan apakah nama pengguna yang ditentukan adalah pengguna Windows atau pengguna SQL Server.

Skrip
[out] String yang berisi skrip SQL Server yang dihasilkan.

HRESULT
[out] Nilai yang menunjukkan apakah panggilan berhasil atau gagal.

Nilai hasil

Mengembalikan HRESULT yang menunjukkan keberhasilan atau kegagalan panggilan metode. Nilai 0 menunjukkan bahwa panggilan metode berhasil. Nilai bukan nol menunjukkan bahwa terjadi kesalahan.

Keterangan

Jika DatabaseName kosong, maka IsRemote diabaikan dan nilai file konfigurasi server laporan digunakan untuk nama database.

Jika IsWindowsUser diatur ke true, UserName harus dalam format <domain>\<username>.

Ketika IsWindowsUser diatur ke true, skrip yang dihasilkan memberikan hak masuk kepada pengguna untuk SQL Server, mengatur database server laporan sebagai database default, dan memberikan peran RSExec pada database server laporan, database sementara server laporan, database utama dan database sistem MSDB.

Ketika IsWindowsUser diatur ke true, metode menerima SID Windows standar sebagai input. Ketika Anda memberikan SID Windows standar atau nama akun layanan, nama diterjemahkan ke string nama pengguna. Jika database bersifat lokal, akun diterjemahkan ke representasi akun yang dilokalkan dengan benar. Jika database jarak jauh, akun diwakili sebagai akun komputer.

Tabel berikut ini memperlihatkan akun yang diterjemahkan dan representasi jarak jauhnya.

Akun /SID yang diterjemahkan Nama Umum Nama Jarak Jauh
(S-1-5-18) Sistem Lokal <Domain>\<ComputerName>$
.\LocalSystem Sistem Lokal <Domain>\<ComputerName>$
ComputerName\LocalSystem Sistem Lokal <Domain>\<ComputerName>$
LocalSystem Sistem Lokal <Domain>\<ComputerName>$
(S-1-5-20) Layanan Jaringan <Domain>\<ComputerName>$
NT AUTHORITY\NetworkService Layanan Jaringan <Domain>\<ComputerName>$
(S-1-5-19) Layanan Lokal Error
NT AUTHORITY\LocalService Layanan Lokal Error

Pada Windows 2000, jika Anda menggunakan akun bawaan dan database server laporan jarak jauh, kesalahan akan ditampilkan.

Jika akun bawaan LocalService ditentukan dan database server laporan jarak jauh, kesalahan akan ditampilkan.

Ketika IsWindowsUser benar, penyedia WMI menentukan apakah database server laporan terletak di komputer yang sama atau di komputer jarak jauh. Penentuan ini dibuat ketika nilai yang disediakan dalam UserName perlu diterjemahkan. Untuk menentukan apakah penginstalan bersifat lokal, penyedia WMI mengevaluasi properti DatabaseServerName terhadap daftar nilai berikut. Jika kecocokan ditemukan, database bersifat lokal. Jika tidak, jarak jauh. Perbandingannya adalah tidak peka huruf besar/kecil.

Nilai DatabaseServerName Contoh
"."
"(lokal)"
"LOCAL"
localhost
<Nama mesin> testlab14
<MachineFQDN> example.redmond.microsoft.com
<IPAddress> 180.012.345,678

Ketika IsWindowsUser diatur ke true, penyedia WMI memanggil LookupAccountName untuk mendapatkan SID untuk akun tersebut, lalu memanggil LookupAccountSID untuk mendapatkan nama yang akan dimasukkan ke dalam skrip SQL Server. Tindakan ini memastikan bahwa nama akun yang digunakan melewati validasi SQL Server.

Ketika IsWindowsUser diatur ke false, skrip yang dihasilkan memberikan peran RSExec pada database server laporan, database sementara server laporan, dan database MSDB.

Ketika IsWindowsUser diatur ke false, pengguna SQL Server harus sudah ada di SQL Server agar skrip berhasil dijalankan.

Jika server laporan tidak memiliki database server laporan yang ditentukan, memanggil GrantRightsToDatabaseUser mengembalikan kesalahan.

Skrip yang dihasilkan mendukung SQL Server 2000 (8.x), SQL Server 2005, dan SQL Server 2008 (10.0.x).

Persyaratan

Namespace:root\Microsoft\SqlServer\ReportServer\<InstanceName>\v13\Admin

anggota MSReportServer_ConfigurationSetting