4D v16

GRANT

Página Inicial

 
4D v16
GRANT

GRANT  


 

 

GRANT [READ | READ_WRITE | ALL] ON nom_sql TO nom_sql

O comando GRANT permite definir os direitos de acesso associados ao esquema nom_sql. Estes direitos serão atribuídos ao grupo de usuários 4D designados pelo segundo parâmetro nom_sql.

As palavras chaves READ, READ_WRITE e ALL permitem definir os tipos de acesso autorizados para a tabela:

  • READ estabelece o modo de acesso somente de leitura (dados)
  • READ_WRITE estabelece o modo de acesso leitura/escritura (dados)
  • ALL estabelece o modo de acesso completo (dados e estrutura).

Note que cada tipo de acesso está definido independentemente dos outros. Em particular, se atribui só os direitos READ a um grupo, isto não terá nenhum efeito já que o grupo como também os outros continuarão se beneficiando do acesso READ_WRITE (atribuído a todos os grupos por padrão). Para definir o acesso READ, deve chamar duas vezes o comando GRANT (ver exemplo 2).

O controle de acesso só aplica as conexões externas. O código SQL executado ao interior de 4D via as etiquetas Begin SQL/End SQL ou os comandos tais como SQL EXECUTE tem acesso total.

Nota de compatibilidade: Durante a conversão de uma base anterior a versão 11.3 ou superior, os direitos de acesso globais (tais como os definidos na página SQL das Preferências da aplicação) se transferem ao esquema por padrão.

O primeiro parâmetro nom_sql deve conter o nome do grupo de usuários 4D ao que deseja atribuir direitos de acesso ao esquema. Este grupo deve existir na base 4D.

Nota: 4D permite definir os nomes de grupos incluindo espaços e/ou caracteres acentuados que não são aceitos por SQL padrão. Neste caso, deve colocar o nome entre os caracteres [ e ]. Por exemplo: GRANT READ ON [meu esquema] TO [os administradores]

Somente o Designer e o Administrador da base podem modificar os esquemas.

4D garante o princípio de integridade referencial independentemente dos direitos de acesso. Por exemplo, vamos supor que tenha duas tabelas, Tabela1 e Tabela2, conectadas por uma relação de tipo Muitos a Um (Tabela2 -> Tabela1). Tabela1 pertence ao esquema S1 e Tabela2 ao esquema S2. Um usuário que tenha direitos de acesso ao esquema S1 mas não ao S2 pode excluir os registros na Tabela1. Neste caso, para respeitar os princípios de integridade referencial, todos os registros de Tabela2 que estão relacionados com os registros excluídos da Tabela1 também serão removidos.

Você quer autorizar o acesso em leitura escritura de dados do esquema MeuEsquema1 ao grupo "Power_Users":

GRANT READ_WRITE ON MeuEsquema1 TO POWER_USERS

Você quer autorizar um acesso em leitura unicamente ao grupo "Readers". Este caso requer atribuir pelo menos um grupo com direitos READ_WRITE (aquí "Admins") de forma que já não se atribui a todos os grupos por padrão:

GRANT READ ON MySchema2 TO Readers /*Atribuição do acesso em leitura unicamente */
GRANT READ_WRITE ON MySchema2 TO Admins /*Deter o acesso a todos em leitura escritura*/



Ver também 

ALTER SCHEMA
CREATE SCHEMA
REVOKE

 
PROPRIEDADES 

Produto: 4D
Tema: Comandos SQL

 
HISTÓRIA 

 
ARTICLE USAGE

Manual de SQL ( 4D v16)