Lição 2: Configurar permissões em objetos de banco de dados

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzurePDW (Analytics Platform System)

Observação

O roteiro de aprendizagem Introdução à consulta com Transact-SQL fornece conteúdo mais detalhado, juntamente com exemplos práticos.

Conceder um acesso de usuário a um banco de dados envolve três etapas. Primeiro, crie um logon. O logon permite que o usuário se conecte ao Mecanismo de Banco de Dados do SQL Server. Em seguida, configure o logon como um usuário no banco de dados especificado. E, finalmente, conceda essa permissão de usuário a objetos de banco de dados. Esta lição mostra essas três etapas e demonstra como criar uma exibição e um procedimento armazenado como o objeto.

Observação

Esta lição baseia-se em objetos criados na Lição 1 – Criar objetos de banco de dados. Conclua a Lição 1 antes de passar para a Lição 2.

Pré-requisitos

Para concluir este tutorial, você precisa de acesso ao SQL Server Management Studio e a uma instância do SQL Server.

Se você não tiver acesso a uma instância do SQL Server, selecione sua plataforma nos links a seguir. Se você escolher Autenticação do SQL, use suas credenciais de logon do SQL Server.

Somos todos ouvidos: Se você encontrar algo desatualizado ou incorreto neste artigo, como uma etapa ou um exemplo de código, informe-nos. Você pode clicar no botão Esta página na seção Comentários na parte inferior desta página. Lemos todos os itens de comentários sobre o SQL, normalmente no dia seguinte. Obrigado.

Criar um logon

Para acessar o Mecanismo de Banco de Dados, os usuários precisam de um logon. O logon pode representar a identidade do usuário como conta do Windows ou como membro de um grupo do Windows, ou o logon pode ser um logon do SQL Server que exista apenas no SQL Server. Sempre que possível, você deverá usar a Autenticação do Windows.

Por padrão, os administradores têm acesso completo ao SQL Serverno seu computador. Nesta lição, pretendemos ter um usuário menos privilegiado. Dessa forma, você criará uma nova conta local de Autenticação do Windows em seu computador. Para fazer isso, você precisa ser administrador do computador. Em seguida, você concede a esse novo usuário acesso ao SQL Server.

Criar uma nova conta do Windows

  1. Selecione Iniciar, Executar, na caixa Abrir, digite %SystemRoot%\system32\compmgmt.msc /s e clique em OK para abrir o programa de Gerenciamento do Computador.
  2. Em Ferramentas do Sistema, expanda Usuários e Grupos Locais, clique com o botão direito do mouse em Usuáriose selecione Novo Usuário.
  3. Na caixa Nome de usuário digite Mary.
  4. Na caixa Senha e Confirmar senha, digite uma senha forte e selecione Criar para gerar um novo usuário local do Windows.

Criar um logon do SQL

Em uma janela do Editor de Consulta do SQL Server Management Studio, digite e execute o código a seguir substituindo computer_name pelo nome de seu computador. FROM WINDOWS indica que o Windows autenticará o usuário. O argumento opcional DEFAULT_DATABASE é conectado Mary ao banco de dados TestData, a menos que a cadeia de conexão indique outro banco de dados. Essa instrução introduz o ponto-e-vírgula como término opcional para uma instrução Transact-SQL.

CREATE LOGIN [computer_name\Mary]
    FROM WINDOWS
    WITH DEFAULT_DATABASE = [TestData];
GO

Isso autoriza o nome de usuário Mary, autenticado pelo seu computador, a acessar a instância do SQL Server. Se houver mais de uma instância do SQL Server no computador, você deverá criar o logon em cada instância que Mary deve acessar.

Observação

Como Mary não é uma conta de domínio, esse nome de usuário só poderá ser autenticado nesse computador.

Conceder acesso a um banco de dados

A conta Mary agora tem acesso a esta instância do SQL Server, mas não tem permissão para acessar os bancos de dados. A conta não tem acesso ao banco de dados padrão TestData até que você autorize a conta como usuário do banco de dados.

Para conceder acesso Mary, alterne para o banco de dados TestData e use a instrução CREATE USER para mapear o logon para um usuário chamado Mary.

Criar um usuário em um banco de dados

Digite e execute as instruções a seguir (substituindo computer_name pelo nome de seu computador) para conceder acesso à Mary ao banco de dados TestData .

USE [TestData];
GO

CREATE USER [Mary] FOR LOGIN [computer_name\Mary];
GO

Agora, Mary tem acesso ao SQL Server e ao banco de dados TestData .

Criar exibições e procedimentos armazenados

Como administrador, você pode executar SELECT na tabela Products e na exibição vw_Names, além de executar o procedimento pr_Names. No entanto, Marina não pode. Para conceder as permissões necessárias à Mary, use a instrução GRANT.

Conceder permissão ao procedimento armazenado

Execute a instrução a seguir para conceder a Mary a permissão EXECUTE para o procedimento armazenado pr_Names .

GRANT EXECUTE ON pr_Names TO Mary;
GO

Nesse cenário, Mary pode acessar apenas a tabela Products usando o procedimento armazenado. Para que Mary possa executar a instrução SELECT na exibição, você também deve executar GRANT SELECT ON vw_Names TO Mary. Para remover acesso a objetos de banco de dados, use a instrução REVOKE.

Observação

Se a tabela, a exibição e o procedimento armazenado não pertencerem ao mesmo esquema, a concessão de permissões ficará mais complexa.

Sobre GRANT

É preciso ter permissão EXECUTE para executar um procedimento armazenado. É preciso ter permissões SELECT, INSERT, UPDATE e DELETE para acessar e alterar dados. A instrução GRANT também é usada para outras permissões, como permissão para criar tabelas.

Próximas etapas

O próximo artigo ensina a remover objetos de banco de dados criados nas outras lições.

Vá até o próximo artigo para saber mais: