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
Azure SQL Managed Instance
Concede permissões sobre objetos do sistema como procedimentos armazenados do sistema, procedimentos armazenados estendidos, funções e vistas.
Transact-SQL convenções de sintaxe
Syntax
GRANT { SELECT | EXECUTE } ON [ sys. ] system_object TO principal
[ ; ]
Arguments
[ sys. ]
O qualificador sys é necessário apenas quando se trata de visualizações de catálogo e vistas de gestão dinâmica.
system_object
Especifica o objeto para o qual a permissão está a ser concedida.
principal
Especifica a entidade de segurança à qual a permissão está sendo concedida.
Remarks
Esta instrução pode ser usada para conceder permissões em certos procedimentos armazenados, procedimentos armazenados estendidos, funções com valores de tabela, funções escalares, vistas, vistas de catálogo, vistas de compatibilidade, INFORMATION_SCHEMA vistas, vistas de gestão dinâmica e tabelas de sistema instaladas pelo SQL Server. Cada um destes objetos do sistema existe como um registo único na base de dados de recursos do servidor (mssqlsystemresource). O banco de dados de recursos é somente leitura. Um link para o objeto é exposto como um registo no esquema sys de cada base de dados. A permissão para executar ou selecionar um objeto do sistema pode ser concedida, negada e revogada.
Conceder permissão para executar ou selecionar um objeto não significa necessariamente todas as permissões necessárias para usar o objeto. A maioria dos objetos realiza operações para as quais são necessárias permissões adicionais. Por exemplo, um utilizador que recebe EXECUTE permissão não sp_addlinkedserver pode criar um servidor ligado a menos que também seja membro do papel fixo de servidor sysadmin .
A resolução de nomes padrão resolve nomes de procedimento não qualificados para o banco de dados de recursos. Portanto, o qualificador syss só é necessário quando especificas visualizações de catálogo e vistas de gestão dinâmica.
Não é suportado conceder permissões sobre triggers e colunas de objetos do sistema.
As permissões nos objetos do sistema são preservadas durante as atualizações do SQL Server.
Tem de estar na master base de dados para conceder permissões, e o principal a quem concede as permissões deve ser um utilizador da master base de dados. Ou seja, se forem permissões ao nível do servidor, não podes concedê-las aos principais servidores, apenas aos principais da base de dados.
Os objetos do sistema são visíveis na exibição do catálogo sys.system_objects. As permissões em objetos do sistema são visíveis na vista de catálogo sys.database_permissions na base de dados master.
A consulta a seguir retorna informações sobre permissões de objetos do sistema:
SELECT *
FROM master.sys.database_permissions AS dp
INNER JOIN sys.system_objects AS so
ON dp.major_id = so.object_id
WHERE dp.class = 1 AND so.parent_object_id = 0;
GO
Permissions
Requer a permissão de CONTROL SERVER.
Examples
A. Conceder permissão SELECT numa visualização
O exemplo seguinte concede ao SQL Server permissão de login Sylvester1 para selecionar uma vista que liste os logins do SQL Server. O exemplo concede então a permissão extra necessária para visualizar metadados nos logins do SQL Server que o utilizador não possui.
USE master;
GO
GRANT SELECT ON sys.sql_logins TO Sylvester1;
GRANT VIEW SERVER STATE to Sylvester1;
GO
B. Conceder permissão EXECUTE num procedimento armazenado alargado
O exemplo seguinte concede EXECUTE permissão a Sylvester1xp_readmail .
USE master;
GO
GRANT EXECUTE ON xp_readmail TO Sylvester1;
GO