Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Gera um Script SQL que pode ser usado para conceder direitos de usuário ao banco de dados do servidor de relatório e a outros bancos de dados necessários para a execução de um servidor de relatório. O chamador deve se conectar ao servidor de banco de dados do SQL Server e executar o script.
Sintaxe
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);
Parâmetros
UserName
O nome de usuário ou o identificador de segurança (SID) do Windows do usuário ao qual o script concederá direitos.
DatabaseName
O nome do banco de dados para o qual o script concederá acesso ao usuário.
IsRemote
Um valor Booleano que indica se o banco de dados é remoto em relação ao servidor de relatório.
IsWindowsUser
Um valor booliano que indica se o nome de usuário especificado é de um usuário do Windows ou de um usuário do SQL Server.
Script
[out] Uma cadeia de caracteres que gerou o script do SQL Server.
HRESULT
[out] Valor que indica se a chamada obteve êxito ou falhou.
Valor retornado
Retorna um HRESULT indicando êxito ou falha da chamada do método. Um valor 0 indica que a chamada do método teve êxito. Um valor diferente de zero indica que ocorreu um erro.
Comentários
Se DatabaseName ficar vazio, IsRemote será ignorado e o valor do arquivo de configuração do servidor de relatório será usado como o nome do banco de dados.
Se IsWindowsUser estiver definido como true
, UserName deverá estar no formato <domain>\<username>.
Quando IsWindowsUser é definido como true
, o script gerado concede direitos de logon ao usuário para o SQL Server, definindo o banco de dados do servidor de relatório como o banco de dados padrão e concede a função RSExec no banco de dados do servidor de relatório, no banco de dados temporário do servidor de relatório, no banco de dados mestre e no banco de dados do sistema MSDB.
Quando IsWindowsUser é definido como true
, o método aceita SIDs padrão do Windows como entrada. Quando um SID do Windows padrão ou nome de conta de serviço é fornecido, ele é convertido em uma cadeia de caracteres de nome de usuário. Se o banco de dados for local, a conta será convertida para a representação localizada correta da conta. Se o banco de dados for remoto, a conta será representada como a conta do computador.
A tabela a seguir mostra as contas que são convertidas e sua representação remota.
Conta/SID que está convertido | Nome comum | Nome remoto |
---|---|---|
(S-1-5-18) | Sistema Local | <Domain>\<ComputerName>$ |
.\LocalSystem | Sistema Local | <Domain>\<ComputerName>$ |
Nome do computador\sistema local | Sistema Local | <Domain>\<ComputerName>$ |
LocalSystem | Sistema Local | <Domain>\<ComputerName>$ |
(S-1-5-20) | Serviço de Rede | <Domain>\<ComputerName>$ |
NT AUTHORITY\NetworkService | Serviço de Rede | <Domain>\<ComputerName>$ |
(S-1-5-19) | Serviço Local | Erro – veja abaixo. |
NT AUTHORITY\LocalService | Serviço Local | Erro – veja abaixo. |
No Windows 2000, se você estiver usando uma conta interna e o banco de dados do servidor de relatório for remoto, será retornado um erro.
Se a conta interna LocalService
for especificada e o banco de dados do servidor de relatório for remoto, um erro será retornado.
Quando IsWindowsUser for true e o valor fornecido no UserName precisar ser convertido, o provedor WMI determinará se o banco de dados do servidor de relatório está localizado no mesmo computador ou em um computador remoto. Para determinar se a instalação é local, o provedor de WMI avaliará a propriedade DatabaseServerName da lista de valores a seguir. Se uma correspondência for localizada, o banco de dados é local. Caso contrário, é remoto. A comparação não diferencia maiúsculas de minúsculas.
Valor do DatabaseServerName | Exemplo |
---|---|
"." | |
"(local)" | |
"LOCAL" | |
localhost | |
<Machinename> | testlab14 |
<MachineFQDN> | example.redmond.microsoft.com |
<EndereçoIP> | 180.012.345,678 |
Quando IsWindowsUser é definido como true
, o provedor WMI chama LookupAccountName para obter o SID da conta e, em seguida, chama LookupAccountSID para obter o nome a ser colocado no script do SQL Server. Isso assegura que o nome da conta usado transmitirá a validação do SQL Server.
Quando IsWindowsUser é definido como false
, o script gerado concede a função RSExec no banco de dados do servidor de relatório, no banco de dados temporário do servidor de relatório e no banco de dados MSDB.
Quando IsWindowsUser é definido como false
, o usuário do SQL Server já deve existir no SQL Server para que o script seja executado com êxito.
Se o servidor de relatório não tiver um banco de dados do servidor de relatório especificado, a ação de chamar GrantRightsToDatabaseUser retornará um erro.
O script gerado oferece suporte ao SQL Server 2000, SQL Server 2005 e SQL Server 2008.
Requisitos
Namespace: root\Microsoft\SqlServer\ReportServer\<InstanceName>\v12\Admin