Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
Concede permissões em um esquema.
Transact-SQL convenções de sintaxe
Syntax
GRANT permission [ ,...n ] ON SCHEMA :: schema_name
TO database_principal [ ,...n ]
[ WITH GRANT OPTION ]
[ AS granting_principal ]
Arguments
permission
Especifica uma permissão que pode ser concedida em um esquema. Para obter uma lista das permissões, consulte a seção Comentários mais adiante neste tópico..
NO ESQUEMA ::schema_name
Especifica o esquema no qual a permissão está sendo concedida. O qualificador de escopo :: é obrigatório.
database_principal
Especifica a entidade de segurança à qual a permissão está sendo concedida. Um dos seguintes:
- Utilizador da base de dados
- Função na base de dados
- Função do aplicativo
- usuário do banco de dados mapeado para um login do Windows
- usuário do banco de dados mapeado para um grupo do Windows
- Usuário do banco de dados mapeado para um certificado
- usuário do banco de dados mapeado para uma chave assimétrica
- Usuário do banco de dados não mapeado para uma entidade de servidor.
OPÇÃO DE CONCESSÃO
Indica que a entidade de segurança também terá a capacidade de conceder a permissão especificada a outras entidades de segurança.
COMO granting_principal
Especifica uma entidade da qual a entidade que executa esta consulta deriva seu direito de conceder a permissão. Um dos seguintes:
- Utilizador da base de dados
- Função na base de dados
- Função do aplicativo
- usuário do banco de dados mapeado para um login do Windows
- usuário do banco de dados mapeado para um grupo do Windows
- Usuário do banco de dados mapeado para um certificado
- usuário do banco de dados mapeado para uma chave assimétrica
- Usuário do banco de dados não mapeado para uma entidade de servidor.
Remarks
Important
Uma combinação de permissões ALTER e REFERENCE em alguns casos pode permitir que o beneficiário visualize dados ou execute funções não autorizadas. Por exemplo: Um usuário com permissão ALTER em uma tabela e permissão REFERENCE em uma função pode criar uma coluna computada sobre uma função e executá-la. Nesse caso, o usuário também deve ter a permissão SELECT na coluna computada.
Um esquema é um protegível no nível de banco de dados contido pelo banco de dados que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser concedidas em um esquema estão listadas abaixo, juntamente com as permissões mais gerais que as incluem por implicação.
| Permissão de esquema | Implícito pela permissão de esquema | Implícito pela permissão do banco de dados |
|---|---|---|
| ALTER | CONTROL | ALTERAR QUALQUER ESQUEMA |
| CONTROL | CONTROL | CONTROL |
| CRIAR SEQUÊNCIA | ALTER | ALTERAR QUALQUER ESQUEMA |
| DELETE | CONTROL | DELETE |
| EXECUTE | CONTROL | EXECUTE |
| INSERT | CONTROL | INSERT |
| REFERENCES | CONTROL | REFERENCES |
| SELECT | CONTROL | SELECT |
| ASSUMIR A RESPONSABILIDADE | CONTROL | CONTROL |
| UPDATE | CONTROL | UPDATE |
| VER CONTROLO DE ALTERAÇÕES | CONTROL | CONTROL |
| VER DEFINIÇÃO | CONTROL | VER DEFINIÇÃO |
Caution
Um usuário com permissão ALTER em um esquema pode usar o encadeamento de propriedade para acessar protegíveis em outros esquemas, incluindo protegíveis aos quais esse usuário tem acesso explicitamente negado. Isso ocorre porque o encadeamento de propriedade ignora as verificações de permissões em objetos referenciados quando eles são de propriedade da entidade de segurança proprietária dos objetos que se referem a eles. Um usuário com permissão ALTER em um esquema pode criar procedimentos, sinônimos e exibições que são de propriedade do proprietário do esquema. Esses objetos terão acesso (por meio do encadeamento de propriedade) a informações em outros esquemas de propriedade do proprietário do esquema. Quando possível, você deve evitar conceder permissão ALTER em um esquema se o proprietário do esquema também possuir outros esquemas.
Por exemplo, esse problema pode ocorrer nos seguintes cenários. Esses cenários pressupõem que um usuário, referido como U1, tenha a permissão ALTER no esquema S1. O usuário U1 é negado para acessar um objeto de tabela, referido como T1, no esquema S2. O esquema S1 e o esquema S2 pertencem ao mesmo proprietário.
O usuário U1 tem a permissão CREATE PROCEDURE no banco de dados e a permissão EXECUTE no esquema S1. Portanto, o usuário U1 pode criar um procedimento armazenado e, em seguida, acessar o objeto negado T1 no procedimento armazenado.
O usuário U1 tem a permissão CREATE SYNONYM no banco de dados e a permissão SELECT no esquema S1. Portanto, o usuário U1 pode criar um sinônimo no esquema S1 para o objeto negado T1 e, em seguida, acessar o objeto negado T1 usando o sinônimo.
O usuário U1 tem a permissão CREATE VIEW no banco de dados e a permissão SELECT no esquema S1. Portanto, o usuário U1 pode criar um modo de exibição no esquema S1 para consultar dados do objeto negado T1 e, em seguida, acessar o objeto negado T1 usando o modo de exibição.
Permissions
O concedente (ou o principal especificado com a opção AS) deve ter a própria permissão com GRANT OPTION, ou uma permissão superior que implique a permissão sendo concedida.
Se utilizar a opção AS, aplicam-se estes requisitos adicionais.
| COMO granting_principal | Permissão adicional necessária |
|---|---|
| Utilizador da base de dados | Representar permissão no usuário, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin. |
| Usuário do banco de dados mapeado para um login do Windows | Representar permissão no usuário, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin. |
| Usuário de banco de dados mapeado para um grupo do Windows | Associação ao grupo Windows, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin. |
| Usuário do banco de dados mapeado para um certificado | Associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin. |
| Usuário do banco de dados mapeado para uma chave assimétrica | Associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin. |
| Usuário de banco de dados não mapeado para nenhuma entidade de servidor | Representar permissão no usuário, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin. |
| Função de banco de dados | Permissão ALTER na função, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin. |
| Função da aplicação | Permissão ALTER na função, associação à função de banco de dados fixa db_securityadmin, associação à função de banco de dados fixa db_owner ou associação à função de servidor fixa sysadmin. |
Os proprietários de objetos podem conceder permissões sobre os objetos que possuem. Entidades com permissão CONTROL em um protegível podem conceder permissão sobre esse protegível.
Os beneficiários da permissão CONTROL SERVER, como membros da função de servidor fixa sysadmin, podem conceder qualquer permissão em qualquer protegível no servidor. Os beneficiários da permissão CONTROL em um banco de dados, como membros da função de banco de dados fixa db_owner, podem conceder qualquer permissão em qualquer protegível no banco de dados. Os beneficiários da permissão CONTROL em um esquema podem conceder qualquer permissão em qualquer objeto dentro do esquema.
Examples
A. Concedendo permissão INSERT no esquema HumanResources para convidado
GRANT INSERT ON SCHEMA :: HumanResources TO guest;
B. Concedendo permissão SELECT no esquema Person ao usuário do banco de dados WilJo
GRANT SELECT ON SCHEMA :: Person TO WilJo WITH GRANT OPTION;
Ver também
Permissões de esquema DENY (Transact-SQL)
Permissões de esquema REVOKE (Transact-SQL)
SUBVENÇÃO (Transact-SQL)
Permissões (Motor de Base de Dados)
Principais (Motor de Base de Dados)
CRIAR CERTIFICADO (Transact-SQL)
CRIAR CHAVE ASSIMÉTRICA (Transact-SQL)
CRIAR FUNÇÃO DE APLICATIVO (Transact-SQL)
Hierarquia de criptografia
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)