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.
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 uma tabela, exibição, função com valor de tabela, procedimento armazenado, procedimento armazenado estendido, função escalar, função agregada, fila de serviços ou sinônimo.
Transact-SQL convenções de sintaxe
Syntax
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column_name [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column_name [ ,...n ] ) ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Arguments
permission
Especifica uma permissão que pode ser concedida em um objeto contido no esquema. Para obter uma lista das permissões, consulte Observações.
ALL
Conceder TODOS não concede todas as permissões possíveis. Conceder ALL é equivalente a conceder todas as permissões ANSI-92 aplicáveis ao objeto especificado. O significado de ALL varia da seguinte forma:
- Permissões de função escalar: EXECUTE, REFERENCES.
- Permissões de função com valor de tabela: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Permissões de procedimento armazenado: EXECUTE.
- Permissões da tabela: EXCLUIR, INSERIR, REFERÊNCIAS, SELECIONAR, ATUALIZAR.
- Ver permissões: EXCLUIR, INSERIR, REFERÊNCIAS, SELECIONAR, ATUALIZAR.
Caution
A permissão ALL foi preterida e mantida apenas para compatibilidade.
PRIVILEGES
Incluído para conformidade com ANSI-92. Não altera o comportamento da ALL.
column_name
Especifica o nome de uma coluna em uma tabela, modo de exibição ou função com valor de tabela na qual a permissão está sendo concedida. Os parênteses ( ) são obrigatórios. Somente as permissões SELECT, REFERENCES, UPDATE e UNMASK podem ser concedidas em uma coluna. column_name pode ser especificado na cláusula permissions ou após o nome protegível.
Caution
Um DENY de nível de tabela não tem precedência sobre um GRANT de nível de coluna. Essa inconsistência na hierarquia de permissões foi preservada para compatibilidade com versões anteriores.
EM [ OBJETO :: ] [ schema_name ] . object_name
Especifica o objeto no qual a permissão está sendo concedida. A frase OBJECT é opcional se schema_name for especificado. Se a frase OBJECT for usada, o qualificador de escopo (::) será necessário. Se schema_name não for especificado, o esquema padrão será usado. Se schema_name for especificado, o qualificador de escopo do esquema (.) será necessário.
PARA database_principal <>
Especifica a entidade de segurança à qual a permissão está sendo concedida.
COM OPÇÃO DE SUBVENÇÃ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 database_principal <>
Especifica uma entidade da qual a entidade que executa esta consulta deriva seu direito de conceder a permissão.
Database_user
Especifica um usuário de banco de dados.
Database_role
Especifica uma função de banco de dados.
Application_role
Especifica uma função de aplicativo.
Database_user_mapped_to_Windows_User
Especifica um usuário de banco de dados mapeado para um usuário do Windows.
Database_user_mapped_to_Windows_Group
Especifica um usuário de banco de dados mapeado para um grupo do Windows.
Database_user_mapped_to_certificate
Especifica um usuário de banco de dados mapeado para um certificado.
Database_user_mapped_to_asymmetric_key
Especifica um usuário de banco de dados mapeado para uma chave assimétrica.
Database_user_with_no_login
Especifica um usuário de banco de dados sem entidade de segurança correspondente no nível do servidor.
Remarks
Important
Uma combinação de ALTER e REFERENCE permissões em alguns casos pode permitir que o beneficiário visualize dados ou execute funções não autorizadas. Por exemplo: um usuário com ALTER permissão em uma tabela e REFERENCE permissão em uma função pode criar uma coluna computada sobre uma função e executá-la. Neste caso, o usuário também precisaria de SELECT permissão na coluna computada.
As informações sobre objetos são visíveis em várias exibições de catálogo. Para obter mais informações, consulte Exibições do catálogo de objetos (Transact-SQL).
Um objeto é um protegível de nível de esquema contido pelo esquema que é seu pai na hierarquia de permissões. As permissões mais específicas e limitadas que podem ser concedidas em um objeto estão listadas na tabela a seguir, juntamente com as permissões mais gerais que as incluem por implicação.
| Permissão de objeto | Implícito pela permissão de objeto | Implícito pela permissão de esquema |
|---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW CHANGE TRACKING |
CONTROL |
VIEW CHANGE TRACKING |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
A vinculação de esquema não é suportada no Azure Synapse Analytics, o que pode levar a um comportamento inesperado quando objetos subjacentes são modificados e permissões são concedidas a um modo de exibição. Para obter mais informações, consulte Exibições T-SQL com pool SQL dedicado e pool SQL sem servidor no Azure Synapse Analytics.
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 você estiver usando a opção AS, os seguintes requisitos adicionais se aplicam.
| AS | Permissão adicional necessária |
|---|---|
| Utilizador da base de dados |
IMPERSONATE permissão no usuário, associação à db_securityadmin função de banco de dados fixa, associação à db_owner função de banco de dados fixa ou associação à sysadmin função de servidor fixa. |
| Usuário do banco de dados mapeado para um login do Windows |
IMPERSONATE permissão no usuário, associação à db_securityadmin função de banco de dados fixa, associação à db_owner função de banco de dados fixa ou associação à sysadmin função de servidor fixa. |
| Usuário de banco de dados mapeado para um Grupo do Windows | Associação ao grupo Windows, associação à db_securityadmin função de banco de dados fixa, associação à db_owner função de banco de dados fixa ou associação à sysadmin função de servidor fixa. |
| Usuário do banco de dados mapeado para um certificado | Associação à db_securityadmin função de banco de dados fixa, associação à db_owner função de banco de dados fixa ou associação à sysadmin função de servidor fixa. |
| Usuário do banco de dados mapeado para uma chave assimétrica | Associação à db_securityadmin função de banco de dados fixa, associação à db_owner função de banco de dados fixa ou associação à sysadmin função de servidor fixa. |
| Usuário de banco de dados não mapeado para nenhuma entidade de servidor |
IMPERSONATE permissão no usuário, associação à db_securityadmin função de banco de dados fixa, associação à db_owner função de banco de dados fixa ou associação à sysadmin função de servidor fixa. |
| Função de banco de dados |
ALTER permissão na função, associação à db_securityadmin função de banco de dados fixa, associação à db_owner função de banco de dados fixa ou associação à sysadmin função de servidor fixa. |
| Função da aplicação |
ALTER permissão na função, associação à db_securityadmin função de banco de dados fixa, associação à db_owner função de banco de dados fixa ou associação à sysadmin função de servidor fixa. |
Examples
A. Conceder permissão SELECT em uma tabela
O exemplo a seguir concede SELECT permissão ao usuário RosaQdM na tabela Person.Address no AdventureWorks2025 banco de dados.
Este exemplo como escrito não funciona no Microsoft Fabric porque usa um usuário para um logon autenticado SQL, mas esse mesmo exemplo funcionaria para um usuário do Microsoft Entra ID Fabric, por exemplo, RosaQdM@contoso.com.
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. Conceder permissão EXECUTE em um procedimento armazenado
O exemplo a seguir concede EXECUTE permissão no procedimento HumanResources.uspUpdateEmployeeHireInfo armazenado a uma função de aplicativo chamada Recruiting11.
USE AdventureWorks2022;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. Conceder permissão REFERÊNCIAS em um modo de exibição com GRANT OPTION
O exemplo a seguir concede REFERENCES permissão na coluna BusinessEntityID em modo de exibição HumanResources.vEmployee ao usuário Wanida com GRANT OPTION.
Este exemplo como escrito não funciona no Microsoft Fabric porque usa um usuário para um logon autenticado SQL, mas esse mesmo exemplo funcionaria para um usuário do Microsoft Entra ID Fabric, por exemplo, Wanida@contoso.com.
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
D. Conceder permissão SELECT em uma tabela sem usar a frase OBJECT
O exemplo a seguir concede SELECT permissão ao usuário RosaQdM na tabela Person.Address no AdventureWorks2025 banco de dados.
Este exemplo como escrito não funciona no Microsoft Fabric porque usa um usuário para um logon autenticado SQL, mas esse mesmo exemplo funcionaria para um usuário do Microsoft Entra ID Fabric, por exemplo, RosaQdM@contoso.com.
GRANT SELECT ON Person.Address TO RosaQdM;
GO
E. Conceder permissão SELECT em uma tabela a uma conta de domínio
O exemplo a seguir concede SELECT permissão ao usuário AdventureWorks2022\RosaQdM na tabela Person.Address no AdventureWorks2025 banco de dados.
Este exemplo como escrito não funciona no Microsoft Fabric porque usa uma conta de domínio, mas esse mesmo exemplo funcionaria para um usuário do Microsoft Entra ID Fabric, por exemplo, RosaQdM@contoso.com.
GRANT SELECT ON Person.Address TO [AdventureWorks2022\RosaQdM];
GO
F. Conceder permissão EXECUTE em um procedimento para uma função
O exemplo a seguir cria uma função e, em seguida, concede EXECUTE permissão para a função no procedimento uspGetBillOfMaterials no AdventureWorks2025 banco de dados.
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
G. Conceder permissão UNMASK em uma coluna
O exemplo a seguir concede a UNMASK permissão, parte do mascaramento dinâmico de dados, para a coluna email na tabela Data.Membership ao usuário OutreachCoordinator.
Atualmente, o mascaramento dinâmico de dados não é suportado no Microsoft Fabric.
GRANT UNMASK ON OBJECT::Data.Membership (email) to OutreachCoordinator;
GO
Conteúdo relacionado
- NEGAR Permissões de Objeto (Transact-SQL)
- Permissões de objeto REVOKE (Transact-SQL)
- Exibições do catálogo de objetos (Transact-SQL)
- Permissões (Motor de Base de Dados)
- Principais (Motor de Base de Dados)
- Securables
- sys.fn_builtin_permissions (Transact-SQL)
- HAS_PERMS_BY_NAME (Transact-SQL)
- sys.fn_my_permissions (Transact-SQL)
- Mascaramento dinâmico de dados
- Row-Level segurança