Gerenciamento em Oracle com SQL

Gerenciamento de perfis, rols e tablespaces em Oracle sob SQL.

Por Agustin Jareño


Publicado em: 21/8/07

Valorize este artigo:
Privilégios

é a capacidade de um usuário dentro do banco de dados a realizar determinadas operações ou acessar a determinados objetos de outros usuários.

Privilégios sobre os objetos

Permite-nos acessar e realizar mudanças nos dados de outros usuários. Exemplo: O privilégio de consultar a tabela de outro usuário é um privilégio sobre objetos.

  GRANT {PRIV_OBJETO [, PRIV_OBJETO]… | ALL [PRIVILEGES]}
   [(COL [,COL]…)]
  ON [USUARIO] OBJETO
  TO {USUARIO | ROL | PUBLIC} [,{USUARIO | ROL | PUBLIC}…]
  [WITH GRANT OPTION];


ON= Especifica o objeto sobre o qual se dão os privilégios.
TO= Identifica aos usuários ou rols aos quais se concedem os privilégios.
ALL= Concede todos os privilégios sobre o objeto especificado.
WITCH GRANT OPTION= Permite que o receptor do privilégio ou rol se atribua a outros usuários ou rols.
PUBLIC= Atribui os privilégios a todos os usuários atuais e futuros: O propósito principal do grupo PUBLIC é garantir o acesso a determinados objetos a todos os usuários do banco de dados.

Privilégios de sistema

Dão direito a executar um tipo de comando SQL ou a realçar alguma ação sobre objetos de um tipo especificado. Por exemplo, o privilégio para criar TABLESPACES é um privilégio de sistema. Formato:

  GRANT {PRIVILEGIO | ROL} [, {PRIVILEGIO | ROL}, …]
  TO {USUARIO | ROL | PUBLIC} [,{USUARIO | ROL | PUBLIC}]
  [WITH ADMIN OPTION];


WITH ADMIN OPTION= Permite que o receptor do privilégio ou rol possa conceder esses mesmos privilégios a outros usuários ou rols.

Retirada de privilégios de objetos aos usuários

  REVOKE {PRIV_OBJETO [,PRIV_OBJETO]… | ALL [PRIVILEGES]}
  ON [USUARIO.]OBJETO
  FROM {USUARIO | ROL | PUBLIC} [, {USUARIO | ROL | PUBLIC}]…;


Retirada de privilégios de sistema ou rols aos usuários

  REVOKE {PRIV_SISTEMA | ROL} [,{PRIV_SISTEMA | ROL}]…
  FROM {USUARIO | ROL | PUBLIC} [,{USUARIO | ROL | PUBLIC}]…;


Roles

Conjunto de privilégios agrupados. Formato:

 CREATE ROLE NOMEROL [IDENTIFIED BY SENHA];

Nota: Um rol pode decidir o acesso de um usuário a um objeto, mas não pode permitir a criação de objetos.

Supressão de privilégios nos roles

REVOKE NOMEPRIVILEGIO ON NOMETABELA FROM NOMEROL;

REVOKE NOMEPRIVILEGIO FROM NOMEROL;


Supressão de um rol

  DROP ROLE NOMEROL;

Estabelecer um rol padrão

  ALTER USER NOMEUSUARIO
  DEFAULT {[ROLE NOME_ROL] | [NONE]};


NONE= Faz com que o usuário não tenha rol padrão.

Perfis:

Conjunto de limites aos recursos do banco de dados:

  CREATE PROFILE NOMEPERFIL LIMIT
  {NOME DOS LIMITES}
  {INTEIRO [K | M] | UNLIMITED | DEFAULT };


UNLIMITED= Não há limites sobre um recurso em particular.
DEFAULT= Pega o limite do perfil default.

Eliminação de um perfil:

  DROP FILE NOMEPERFIL [CASCADE];

Gerenciamento de tablespaces

Um tablespace é uma unidade lógica de armazenamento de dados representada fisicamente por um ou mais arquivos de dados. Recomenda-se não misturar dados de diferentes aplicações em um mesmo tablespace.

Para criar um tablespace

  CREATE TABLESPACE NOMETABLESPACE
  DATAFILE 'NOMEARQUIVO' [SIZE INTEIRO [K | M] [REUSE]
  [DEFAULT STORAGE
    (INITIAL TAMANHO
    MINEXTENTS TAMANHO
    MAXEXTENTS TAMANHO
    PCTINCREASE VALOR
    )]
   [ONLINE | OFFLINE];


REUSE= Reutiliza o arquivo se já existe ou o cria se não existe.
DEFAULT STORAGE= Define o armazenamento por omissão para todos os objetos que se criam neste espaço da tabela. Observe a quantidade de espaço se não se especifica na sentença CREATE TABLE.

Modificação de tablespaces

  ALTER TABLESPACE NOMETABLESPACE
  {[ADD DATAFILE 'NOMEARQUIVO' [SIZE INTEIRO [K | M] [REUSE]
    [AUTOEXTEND ON… | OFF]
    ]
    [REANME DATAFILE 'ARQUIVO' [, 'ARQUIVO']…
    TO 'ARQUIVO' [, 'ARQUIVO']]
    [DEFAULT STORAGE CLAUSULAS_ARMAZENAMENTO]
    [ONLINE | OFFLINE]
    };


ADD_DATAFILE= Adiciona ao tablespace um ou vários arquivos.
AUTOEXTEND= Ativa ou desativa o crescimento automático dos arquivos de dados do tablespace. Quando um tablespace se enche podemos usar esta opção para que o tamanho do arquivo ou arquivos de dados associados cresça automaticamente.
  Autoextend off: desativa o crescimento automático.
RENAME_DATAFILE= Muda o nome de um arquivoe existente do tablespace. Esta mudança tem que ser feita através do sistema operacional e, depois, executar a ordem SQL.

Eliminação de tablespaces

  DROP TABLESPACE NOMETABLESPACE
  [INCLUDING CONTENTS];


INCLUDING CONTENTS= Permite eliminar um tablespace que tenha dados. Sem esta opção só se pode suprimir um tablespace vazio.
Recomenda-se colocar o talespace offline antes de elimina-lo para certificarmos de que não haja sentenças SQL que estejam acessando dados do tablespace, em cujo caso não seria possível elimina-lo.
Quando se elimina um tablespace os arquivos associados não se apagam do sistema operacional, portanto teremos que elimina-los de forma manual.






Usuários :    login / registro
Manuais relacionados
Categorias relacionadas
O autor

Buscar projetos:

Home | Sobre nós | Copyright | Anuncie | Entrar em contato