none
Permissões RRS feed

  • Pergunta

  • Como posso criar um usuário, que veja apenas um banco e também de select em apenas uma tabela especifica ?

    Criei este script, mas não consigo usar comando nos outros banco.

    USE [master]
    GO
    CREATE LOGIN [CNS] WITH PASSWORD=N'cns' MUST_CHANGE, DEFAULT_DATABASE=[TST_905], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
    GO
    USE [TST_905]
    GO
    CREATE USER [CNS] FOR LOGIN [CNS]
    GO
    USE [TST_905]
    GO
    ALTER USER [CNS] WITH DEFAULT_SCHEMA=[db_datareader]
    GO
    DENY VIEW DATABASES TO [CNS]
    GO
    GRANT VIEW ANY TST_905 TO [CNS]
    GO
    REVOKE ALL TO [CNS]
    GO
    GRANT SELECT ON TST_905..produto TO [CNS]


    quinta-feira, 26 de março de 2015 15:07

Respostas

  • Marcelo,

    Você consegue limitar que o usuário possa ver todos os bancos de dados e você pode conceder acesso de leitura e escrita apenas para este banco de dados.

    USE SeuBanco;
    GO

    CREATE LOGIN [usrCNS] WITH PASSWORD='SuaSenha';
    GO --CRIANDO UM "USER" E VINCULANDO AO "LOGIN" (COM MESMO NOME) CREATE USER [usrCNS] FOR LOGIN [usrCNS] WITH DEFAULT_SCHEMA=dbo; GO --CRIANDO UM "DATABASE ROLE" AUTORIZADO POR "dbo" CHAMADO "db_app" CREATE ROLE db_app AUTHORIZATION dbo; GO --ADICIONANDO O "USER" COMO MEMBRO DO DATABASE ROLE "db_app" ALTER ROLE db_app ADD MEMBER [usrCNS]; GO --ADICIONANDO O DATABASE ROLE "db_app" COMO MEMBRO --DOS DATABASE ROLE "db_datareader" E "db_datawriter" ALTER ROLE db_datareader ADD MEMBER db_app; GO ALTER ROLE db_datawriter ADD MEMBER db_app; GO -------------------------- USE master GO DENY VIEW ANY DATABASE TO [usrCNS] GO

    Neste caso, seu usuário vai ser obrigado a declarar o banco de dados que deseja usar, através de uma "New Query" no SSMS.

    USE SeuBanco
    GO

    Para limitar o acesso à apenas uma tabela (somente consulta - "SELECT"), então utilize o script abaixo:

    USE SeuBanco;
    GO
    
    GRANT
           SELECT,
           VIEW DEFINITION
    TO [usrCNS];
    GO
    


    Para maiores informações veja:

    http://social.technet.microsoft.com/wiki/pt-br/contents/articles/30053.permissoes-de-acesso-em-instancias-sql-server.aspx

    https://msdn.microsoft.com/pt-br/library/ms186717.aspx

    https://msdn.microsoft.com/pt-br/library/ms178569.aspx

    https://technet.microsoft.com/pt-br/library/ms188371.aspx

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    sexta-feira, 27 de março de 2015 18:34