none
Permissão via script sql RRS feed

  • Pergunta

  • Boa tarde,

    Estou com uma solicitação aqui medonha e não faço a menor idéia do que fazer.

    Eu preciso conceder permissão de acesso ao servidor de relatórios (http://SERVIDOR/Reports ou http://SERVIDOR/ReportServer) através de Script SQL.

    Ou seja, num grosso, seria como se tivesse uma tabela de usuários no banco do ReportServer e um dba fosse lá e desse um insert na tabela do usuário desejado. Seria simples se não fosse complicado.

    Existe uma tabela no banco ReportServer chamada Users, onde se eu adicionar um usuário através do Report Manager, automaticamente ela é atualizada com o usuário que coloquei. Então pensei, vou dar um insert nessa tabela copiando os valores de um usuário desejado. Não deu certo. Logo pensei, deve ser mais de uma tabela envolvida e reparei em outra tabela chamada PolicyUserRole, que ao adicionar um usuário novo pelo Report Manager, também é modifica. Ai tive uma brilhante idéia, vou dar um insert copiando as informações que eu quiser, fiz isso e também não funcionou. Logo, devem ter mais de 2 tabelas envolvidas.

    Ai pensei, vou usar o SQL Server Profiler para mapear o que é feito no SQL que seja necessário dar tal permissão.

    São várias consultas e inserts monstruosas que me arrependi de ter feito isso.

    Logo venho saber se alguém já precisou fazer algo parecido e tem algo resumido, ou até mesmo algum material na internet (que até o momento não encontrei) que ensine e ai eu me viro.

    Espero que alguém me ajude.


    Rodrigo Ataíde.

    segunda-feira, 6 de maio de 2013 18:24

Todas as Respostas

  • Em geral engenharia reversa e inserir dados direto no banco de dados do reporting services nao eh uma pratica recomendada. Mesmo que atravez do profiler voce chegue a conclusao que 'e um simples insert, isso pode mudar de versao para versao (inclusive atravez de um update/hotfix) ja que isso nao eh exposto como uma api publica,isso pode colocar o banco de dados em um estado inconsistente e causar muita dor de cabeca no futuro :)

    Se voce esta usando modo nativo, a maneira mais facil 'e utilizar uma das apis publicas, por exemplo SOAP para fazer isso atravez de uma aplicacao/script. Recomendo baixar e olhar o exemplo "RSPermissions" no codeplex:

    http://msftrsprodsamples.codeplex.com/

    Voce tambem pode ver os exemplos usando scripts, por exemplo addItemSecurity:

    http://msftrsprodsamples.codeplex.com/SourceControl/changeset/view/94877#679280

    Att

    Boreki


    Boreki[MSFT] - SQL Server Reporting Services

    segunda-feira, 6 de maio de 2013 19:39
  • Boreki,

    Aprecio muito sua ajuda. Mas infelizmente o que estou procurando é alguma procedure ou função ou qualquer coisa do genero que eu possa executar no Manager que criar um usuário com as devidas permissões no Reporting Services.

    Se puder me ajudar a encontra que já procurei no pai de todos e não achei.


    Rodrigo Ataíde.

    terça-feira, 7 de maio de 2013 22:35
  • Up. Alguem?

    Att, Felipo Gonçalves | Microsoft Contingent Staff

    sexta-feira, 10 de maio de 2013 13:25
  • Rodrigo Ataíde,

    No caso, não seria mais fácil você criar o usuário no AD do Windows server e no reporting você associar as permissões ao usuário?

    Onde trabalho fazemos dessa forma e o controle é muito bom.

    Espero ter ajudado.

    Att.:

    Chilipi_10

    sexta-feira, 10 de maio de 2013 19:48
  • Boa noite Chilipi_10,

    Eu também acho, mas meus coordenadores não concordam.

    Eles querem que a permissão no Reporting seja administrado pelo DBA ou pelo administrador do ERP.

    Digamos que seja para diminuir a burocracia do acesso. Se não teria que passar pelo net admin e pelo dba.

    Compreendeu?

    Alguém tem qualquer solução do genêro?


    Rodrigo Ataíde.

    sexta-feira, 10 de maio de 2013 20:44