none
Permissão para criar tabelas,views e procedures no SQL Server 2008 R2 RRS feed

  • Pergunta

  • Prezados,

    Ainda tenho um servidor com SQL Server 2008 R2 e nele existe um banco de dados com vários "schemas" criados.

    O cliente pediu que alguns logins tenham permissão de criar tabelas, views e procedures somente em um dos "schemas".

    Tentei criar uma "role" neste banco de dados, daí incluí como membros dessa "role" todos os logins desejados.

    Depois na "page" "Securables" desta "role", incluí o "schema" desejado no campo "Securables" e, logo abaixo, no campo de "Permissions for <schema>", coloquei a permissão "Alter", mas desse jeito não funcionou. Os logins continuam sem permissão de criarem os objetos desejados para o "schema".

    Como eu devo proceder para permitir que determinados logins/usuários só possam criar objetos para um determinado "schema" ?

    Agradeço desde já.

    Obrigado,

    José Luiz

    terça-feira, 29 de janeiro de 2019 18:34

Respostas

Todas as Respostas

  • Opa,

    Da a permissão de create na ROLE que você criou.

    Ex:

    use banco_teste

    go

    grant create procedure to ROLE_TESTE;

    grant create function to ROLE_TESTE;

    grant create view to ROLE_TESTE;

    quarta-feira, 30 de janeiro de 2019 11:16
  • Prezado César,

    Dei os "GRANT's" que você orientou, mas os logins/usuários continuam sem permissão de criar nenhum objeto sob o schema especificado

    quarta-feira, 30 de janeiro de 2019 16:04
  • José,

    Este usuário tem permissão no Schema? Ele é o owner do Schema?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 1 de fevereiro de 2019 11:11
    Moderador
  • Pedro,

    Eu criei uma role e nela incluí os usuários, que precisam criar tabelas, views e procedures neste schema. Na opção  "Securables" dessa role incluí o tal schema e dei permissão de ALTER.

    O owner tanto do schema quanto da role é o dbo, não é nenhum dos usuários que precisa fazer criação de objetos neste schema.

    sexta-feira, 1 de fevereiro de 2019 18:17
  • José,

    Mas qual é a mensagem de erro que esta sendo apresentada?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    segunda-feira, 4 de fevereiro de 2019 16:26
    Moderador
  • Pedro,

    Quando eu me logo com um dos usuários que pertencem à role que criei e quando vou tentar criar uma tabela, por exemplo, a mensagem de erro é a apresentada abaixo :

    Msg 262, Level 14, State 1, Line 1
    CREATE TABLE permission denied in database 'DBTESTE'. (DBTESTE é o banco que possui a role e onde estou tentando criar a tabela)

    Não sei qual permissão está faltando para que esses usuários só consigam criar objetos neste schema específico.

    terça-feira, 5 de fevereiro de 2019 13:17
  • José Luiz SP,

    Acrescente o respectivo usuário a Database Role DB Admin, vejo o exemplo abaixo:

    EXEC sp_addrolemember 'db_ddladmin', N'MyUserName'


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 7 de fevereiro de 2019 11:21
    Moderador
  • Pedro,

    Mas se eu acrescentar o usuário à role db_ddladmin, aí o usuário consegue criar tabelas, views e procedures no respectivo schema, mas também consegue criar em todos. E não é isso que o cliente quer.

    Não estou conseguindo limitar a criação destes objetos, por estes usuários, mas somente em um schema único

    sexta-feira, 8 de fevereiro de 2019 02:57
  • José,

    Mas depois você vai dar negação aos outros procedimentos e objetos que você não deseja que ele faça.

    Este tipo de procedimento é muito comum, você da permissão máxima e depois vai removendo.


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sábado, 9 de fevereiro de 2019 18:21
    Moderador