Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Para gerenciar facilmente as permissões em seus bancos de dados, o SQL Server fornece várias funções que são entidades de segurança que agrupam outras entidades de segurança. Eles são como grupos no sistema operacional Microsoft Windows. As funções no nível do banco de dados abrangem todo o banco de dados no âmbito das permissões.
Há dois tipos de funções no nível do banco de dados no SQL Server: funções de banco de dados fixas predefinidas no banco de dados e funções de banco de dados flexíveis que você pode criar.
As funções de banco de dados fixas são definidas no nível do banco de dados e existem em cada banco de dados. Membros da função de banco de dados db_owner podem gerenciar a associação a funções de banco de dados fixas. Há também algumas funções de banco de dados fixas de finalidade especial no banco de dados msdb.
Você pode adicionar qualquer conta de banco de dados e outras funções do SQL Server em funções no nível do banco de dados. Cada membro de uma função de banco de dados fixa pode adicionar outros logons à mesma função.
Importante
Não adicione funções de banco de dados flexíveis como membros de funções fixas. Isso pode habilitar o escalonamento de privilégios não intencional.
A tabela a seguir mostra as funções fixas no nível do banco de dados e seus recursos. Essas funções existem em todos os bancos de dados.
| Nome da função no nível do banco de dados | Descrição |
|---|---|
| db_owner | Os membros do db_owner função de banco de dados fixa podem executar todas as atividades de configuração e manutenção no banco de dados e também podem remover o banco de dados. |
| db_securityadmin | Membros da função fixa de banco de dados db_securityadmin podem modificar os membros da função e gerenciar permissões. Adicionar principais a essa função pode permitir o escalonamento de privilégios não intencional. |
| db_accessadmin | Os membros da db_accessadmin função de banco de dados fixa podem adicionar ou remover o acesso ao banco de dados para logons do Windows, grupos do Windows e logons do SQL Server. |
| db_backupoperator | Membros da função de banco de dados fixa db_backupoperator podem fazer backup do banco de dados. |
| db_ddladmin | Os membros da função de banco de dados fixa db_ddladmin podem executar qualquer comando DDL (Linguagem de Definição de Dados) em um banco de dados. |
| db_datawriter | Membros da db_datawriter função de banco de dados fixa podem adicionar, excluir ou alterar dados em todas as tabelas de usuário. |
| db_datareader | Os membros da db_datareader função de banco de dados fixa podem ler todos os dados de todas as tabelas de usuário. |
| db_denydatawriter | Os membros do db_denydatawriter função de banco de dados fixa não podem adicionar, modificar ou excluir dados nas tabelas de usuário em um banco de dados. |
| db_denydatareader | Os membros da db_denydatareader função de banco de dados fixa não podem ler nenhum dado nas tabelas de usuário em um banco de dados. |
Funções msdb
O banco de dados msdb contém as funções de finalidade especial mostradas na tabela a seguir.
| nome da função msdb | Descrição |
|---|---|
db_ssisadmindb_ssisoperator db_ssisltduser |
Os membros dessas funções de banco de dados podem administrar e usar o SSIS. Instâncias do SQL Server que são atualizadas de uma versão anterior podem conter uma versão mais antiga da função que foi nomeada usando os DTS (Serviços de Transformação de Dados) em vez do SSIS. Para saber mais, confira Funções do Integration Services (Serviço SSIS). |
dc_admindc_operator dc_proxy |
Os membros dessas funções de banco de dados podem administrar e usar o coletor de dados. Para obter mais informações, consulte Coleta de Dados. |
| PolicyAdministratorRole | Os membros da função de banco de dados Db_ PolicyAdministratorRole podem executar todas as atividades de configuração e manutenção em políticas e condições de Gerenciamento Baseado em Políticas. Para obter mais informações, consulte Administrar servidores usando o gerenciamento baseado em políticas. |
|
ServerGroupAdministratorRole ServerGroupReaderRole |
Os membros dessas funções de banco de dados podem administrar e usar grupos de servidores registrados. |
| dbm_monitor | Criado no banco de dados msdb ao registrar o primeiro banco de dados no Monitor de Espelhamento de Banco de Dados. A função dbm_monitor não tem membros até que um administrador do sistema atribua usuários à função. |
Importante
Os membros da função db_ssisadmin e da função dc_admin podem ser capazes de elevar seus privilégios para sysadmin. Essa elevação de privilégios pode ocorrer porque essas funções podem modificar os pacotes do Integration Services e os pacotes do Integration Services podem ser executados pelo SQL Server usando o contexto de segurança sysadmin do SQL Server Agent. Para se proteger contra essa elevação de privilégios ao executar planos de manutenção, conjuntos de coletas de dados e outros pacotes do Integration Services , configure os trabalhos do SQL Server Agent que executam pacotes para usar uma conta proxy com privilégios limitados ou apenas adicione membros sysadmin às funções db_ssisadmin e dc_admin.
Trabalhando com funções de Database-Level
A tabela a seguir explica os comandos, exibições e funções para trabalhar com funções no nível do banco de dados.
| Característica | Tipo | Descrição |
|---|---|---|
| sp_helpdbfixedrole (Transact-SQL) | Metadados | Retorna uma lista das funções de banco de dados fixas. |
| sp_dbfixedrolepermission (Transact-SQL) | Metadados | Exibe as permissões de uma função de banco de dados fixa. |
| sp_helprole (Transact-SQL) | Metadados | Retorna informações sobre as funções no banco de dados atual. |
| sp_helprolemember (Transact-SQL) | Metadados | Retorna informações sobre os membros de uma função no banco de dados atual. |
| sys.database_role_members (Transact-SQL) | Metadados | Retorna uma linha para cada membro de cada função de banco de dados. |
| IS_MEMBER (Transact-SQL) | Metadados | Indica se o usuário atual é membro do grupo do Microsoft Windows especificado ou da função de banco de dados do Microsoft SQL Server. |
| CREATE ROLE (Transact-SQL) | Comando | Cria uma nova função de banco de dados no banco de dados atual. |
| ALTER ROLE (Transact-SQL) | Comando | Altera o nome de uma função de banco de dados. |
| DROP ROLE (Transact-SQL) | Comando | Remove uma função do banco de dados. |
| sp_addrole (Transact-SQL) | Comando | Cria uma nova função de banco de dados no banco de dados atual. |
| sp_droprole (Transact-SQL) | Comando | Remove uma função de banco de dados do banco de dados atual. |
| sp_addrolemember (Transact-SQL) | Comando | Adiciona um usuário de banco de dados, uma função de banco de dados, um logon do Windows ou um grupo do Windows a uma função de banco de dados no banco de dados atual. |
| sp_droprolemember (Transact-SQL) | Comando | Remove uma conta de segurança de uma função do SQL Server no banco de dados atual. |
função de banco de dados pública
Cada usuário de banco de dados pertence à função de banco de dados pública . Quando um usuário não tem permissões específicas concedidas ou negadas em um objeto protegível, o usuário herda as permissões concedidas ao público nesse objeto.
Conteúdo relacionado
Exibições do catálogo de segurança (Transact-SQL)
Procedimentos armazenados de segurança (Transact-SQL)