Partilhar via


Permissões de esquema GRANT (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase 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)