Aracılığıyla paylaş


ConfigurationSetting yöntemi - GenerateDatabaseRightsScript

Kullanıcıya rapor sunucusu veritabanına erişim vermek için kullanabileceğiniz bir SQL betiği oluşturur. Ayrıca, bir rapor sunucusunun çalışması için gereken diğer veritabanlarına erişim verir. Çağıranın SQL Server veritabanı sunucusuna bağlanması ve betiği yürütmesi gerekir.

Sözdizimi

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

Parametreler

UserName
Betiğin hak ettiği kullanıcının kullanıcı adı veya Windows güvenlik tanımlayıcısı (SID).

DatabaseName
Betiğin kullanıcıya erişim izni veren veritabanı adı.

IsRemote
Veritabanının rapor sunucusundan uzak olup olmadığını belirten boole değeri.

IsWindowsUser
Belirtilen kullanıcı adının Windows kullanıcısı mı yoksa SQL Server kullanıcısı mı olduğunu gösteren Boole değeri.

Senaryo
[out] Oluşturulan SQL Server betiğini içeren bir dize.

HRESULT
[out] Çağrının başarılı mı yoksa başarısız mı olduğunu gösteren değer.

Dönüş değeri

Yöntem çağrısının başarılı veya başarısız olduğunu belirten bir HRESULT döndürür. 0 değeri, yöntem çağrısının başarılı olduğunu gösterir. Sıfır olmayan bir değer bir hatanın oluştuğuna işaret eder.

Açıklamalar

DatabaseName boşsa, IsRemote yoksayılır ve veritabanı adı için rapor sunucusu yapılandırma dosyası değeri kullanılır.

IsWindowsUsertrue olarak ayarlandıysa, UserName biçiminde <domain>\<username>olmalıdır.

IsWindowsUsertrue olarak ayarlandığında, oluşturulan betik kullanıcıya SQL Server için oturum açma hakları verir, rapor sunucusu veritabanını varsayılan veritabanı olarak ayarlar ve rapor sunucusu veritabanında, rapor sunucusu geçici veritabanında, ana veritabanında ve MSDB sistem veritabanında RSExec rolü verir.

IsWindowsUsertrue olarak ayarlandığında, yöntem giriş olarak standart Windows SID'lerini kabul eder. Standart Windows SID veya hizmet hesabı adı sağladığınızda, ad bir kullanıcı adı dizesine çevrilir. Veritabanı yerelse, hesap hesabın doğru yerelleştirilmiş gösterimine çevrilir. Veritabanı uzaksa, hesap bilgisayarın hesabı olarak temsil edilir.

Aşağıdaki tabloda çevrilen hesaplar ve bunların uzak gösterimi gösterilmektedir.

Çevrilen hesap / SID Yaygın İsim Uzak Ad
(S-1-5-18) Yerel Sistem <Domain>\<ComputerName>$
.\Localsystem Yerel Sistem <Domain>\<ComputerName>$
ComputerName\LocalSystem Yerel Sistem <Domain>\<ComputerName>$
LocalSystem Yerel Sistem <Domain>\<ComputerName>$
(S-1-5-20) Ağ Hizmeti <Domain>\<ComputerName>$
NT AUTHORITY\NetworkService Ağ Hizmeti <Domain>\<ComputerName>$
(S-1-5-19) Yerel Hizmet Hata
NT AUTHORITY\LocalService Yerel Hizmet Hata

Windows 2000'de yerleşik bir hesap kullanıyorsanız ve rapor sunucusu veritabanı uzaksa bir hata döndürülür.

LocalService yerleşik hesabı belirtilirse ve rapor sunucusu veritabanı uzaksa bir hata döndürülür.

IsWindowsUsertrue olduğunda, WMI sağlayıcısı rapor sunucusu veritabanının aynı bilgisayarda mı yoksa uzak bir bilgisayarda mı bulunduğunu belirler. Bu belirleme, UserName içinde sağlanan değerin çevrilmesi gerektiğinde yapılır. Yüklemenin yerel olup olmadığını belirlemek için WMI sağlayıcısı DatabaseServerName özelliğini aşağıdaki değerler listesine göre değerlendirir. Eşleşme bulunursa veritabanı yereldir. Aksi takdirde uzaktır. Karşılaştırma büyük/küçük harfe duyarlı değildir.

DatabaseServerName Değeri Example
"."
"(yerel)"
"YEREL"
localhost
<Machinename> testlab14
<MachineFQDN> example.redmond.microsoft.com
<Ipaddress> 180.012.345,678

IsWindowsUsertrue olarak ayarlandığında, WMI sağlayıcısı hesabın SID'sini almak için LookupAccountName'i çağırır ve ardından LOOKUPAccountSID'yi çağırarak SQL Server betiğine yerleştirecek adı alır. Bu eylem, kullanılan hesap adının SQL Server doğrulamasını geçmesini sağlar.

IsWindowsUserfalse olarak ayarlandığında, oluşturulan betik rapor sunucusu veritabanında, rapor sunucusu geçici veritabanında ve MSDB veritabanında RSExec rolü verir.

IsWindowsUserfalse olarak ayarlandığında, betiğin başarıyla çalışması için SQL Server kullanıcısının SQL Server'da zaten var olması gerekir.

Rapor sunucusunda belirtilen bir rapor sunucusu veritabanı yoksa GrantRightsToDatabaseUser çağrısı bir hata döndürür.

Oluşturulan betik SQL Server 2000 (8.x), SQL Server 2005 ve SQL Server 2008 'i (10.0.x) destekler.

Gereksinimler

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