none
Negar Permissao de Create tabelas temporárias. RRS feed

  • Pergunta

  • Boa tarde,

    Pessoal, estou com um solicitação de um cliente que solicita que um determinado grudo de usuários da instância perca o privilégio de criação de tabelas temporárias. Como as tabelas temporárias são criadas no banco tempdb, criei um novo grupo para esses usuários e neguei a permissão de escrita no banco tempdb. Porém, mesmo com a opção "deny datawriter" no tempdb, os usuários ainda conseguem criar essas tabelas.

    Será que existe alguma forma de negar esse privilégio para alguns usuários especifícos?

    Qualquer dica será de grande valia, obrigado!!! 

    sábado, 27 de abril de 2013 17:18

Respostas

  • Olá,

    Apenas para tabela temporária não, você teria que realizar o DENY create table para o usuario, mas ai nem tabelas normais ele conseguiria criar. Lembre-se que você tem alguns problemas tratando-se de tempdb.

    1) O tempdb é recriado a cada vez que o SQL Server é reiniciado, ou seja, criou a permissão, mas após isso o serviço do SQL é reiniciado as permissões são perdidas.

    2) O tempdb é um espelho do model, ou seja, tudo que você criar no model será replicado para o tempdb no momento da criação, porem se você ja realizar a negação no model, a cada user database nova que for criada essa permissão também será levada para a base de dados.

    3) Você não poderá criar uma procedure na master para realizar essa permissão, pois a procedure não irá aceitar o comando "use tempdb".

    4) Agora o que você pode fazer é criar uma procedure e dentro de um step colocar o comando de DENY e essa procedure você colocar para rodar quando o serviço do SQL Server subir.

    Se a resposta foi útil, classifique-a


    Att,
    Marcos Freccia [MTA|MCTS|MCITP|MCT SQL Server 2008]
    Blog|Twitter
    Assine também os feeds clicando aqui

    • Sugerido como Resposta Fabrizzio CaputoModerator segunda-feira, 29 de abril de 2013 12:20
    • Marcado como Resposta Lima 83 segunda-feira, 29 de abril de 2013 18:09
    sábado, 27 de abril de 2013 19:27

Todas as Respostas

  • Olá,

    Apenas para tabela temporária não, você teria que realizar o DENY create table para o usuario, mas ai nem tabelas normais ele conseguiria criar. Lembre-se que você tem alguns problemas tratando-se de tempdb.

    1) O tempdb é recriado a cada vez que o SQL Server é reiniciado, ou seja, criou a permissão, mas após isso o serviço do SQL é reiniciado as permissões são perdidas.

    2) O tempdb é um espelho do model, ou seja, tudo que você criar no model será replicado para o tempdb no momento da criação, porem se você ja realizar a negação no model, a cada user database nova que for criada essa permissão também será levada para a base de dados.

    3) Você não poderá criar uma procedure na master para realizar essa permissão, pois a procedure não irá aceitar o comando "use tempdb".

    4) Agora o que você pode fazer é criar uma procedure e dentro de um step colocar o comando de DENY e essa procedure você colocar para rodar quando o serviço do SQL Server subir.

    Se a resposta foi útil, classifique-a


    Att,
    Marcos Freccia [MTA|MCTS|MCITP|MCT SQL Server 2008]
    Blog|Twitter
    Assine também os feeds clicando aqui

    • Sugerido como Resposta Fabrizzio CaputoModerator segunda-feira, 29 de abril de 2013 12:20
    • Marcado como Resposta Lima 83 segunda-feira, 29 de abril de 2013 18:09
    sábado, 27 de abril de 2013 19:27
  • Grato pelos esclarecimentos Marcos,

    Irei apresentar essas possibilidades para o cliente.

    Obrigado.

    segunda-feira, 29 de abril de 2013 18:11