Você está na página 1de 45

Laboratório de

Banco de Dados

Prof. MS.c. Edilson Carlos Caritá


Engenharia de Computação
©2006, Universidade de Ribeirão Preto - UNAERP

1
• Gerenciamento de Usuários e Senhas

2
Tabelas e Direitos do Usuário
• O dicionário do Oracle fornece 3 níveis de visões.
user (User_tables, User_indexes, etc),
all (All_Tables, All_indexes, etc),
dba (Dba_tables, Dba_indexes, etc).
• Exemplo :
• verificar as tabelas do usuário:
SELECT table_name FROM user_tables;
• para ver as tabelas e seus donos:
SELECT owner, table_name FROM user_tables;

3
Create User
• Create User – comando utilizado para criar um
usuário.
• Exemplo:
CREATE USER ALUNO IDENTIFIED BY UNAERP
DEFAULT TABLESPACE ENGENHARIA
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT ACCOUNT UNLOCK;
GRANT CONNECT TO ALUNO;
ALTER USER ALUNO DEFAULT ROLE ALL;
GRANT DBA TO ALUNO;

4
Alter User
• Alter User – comando para modificar a senha do
usuário.

• Sintaxe:
ALTER USER nome_do_usuário IDENTIFIED
BY nova_senha

• Exemplo:
ALTER USER scott IDENTIFIED BY jeca;

5
Privilégios dos Usuários
• Para conceder ou revogar privilégios de acesso/
manipulação aos usuários o DBA utiliza os
comandos:
• GRANT e REVOKE
• Exemplo:
Um usuário com privilégios SELECT ANY TABLE pode
consultar qualquer tabela do banco
Um usuário com privilégio ALTER DATABASE pode
alterar a estrutura física do banco, incluindo novos
arquivos

6
Privilégios dos Usuários
• COMANDO GRANT – Concede privilégios aos
usuários Oracle cadastrados

• Sintaxe:
GRANT <privilégio(s)> to { usuário | role | public }
[WITH ADMIN OPTION];
• Exemplo:
GRANT SELECT ANY TABLE TO manoel
GRANT SELECT, INSERT, UPDATE, DELETE ON
T_Salario TO joaquim

7
Privilégios dos Usuários
• COMANDO REVOKE – Retira (revoga) os
privilégios concedido através do GRANT

• Sintaxe:
REVOKE {privilégio | role} FROM { usuário | role |
public };
• Exemplo:
REVOKE SELECT ANY TABLE FROM manoel
REVOKE UPDATE FROM joaquim

8
Perfis
• São conjuntos com nome que controlam senha e
limites de recurso;
• São atribuídos a usuários pelos comandos:
– CREATE USER ou
– ALTER USER
• Podem ser ativados ou desativados;
• Podem se relacionar ao perfil DEFAULT.

9
Perfis
• Parâmetro:
– FAILED_LOGIN_ATTEMPTS
• número de tentativas falhas de login antes da
paralisação da conta.
– PASSWORD_LOCK_TIME
• número de dias em que a conta permanece
bloqueada ao expirar a senha por falhas de
login.

10
Perfis
• Parâmetro:

– PASSWORD_LIFE_TIME
• período de vida útil em dias da senha, após o
dia que ela expira.
– PASSWORD_GRACE_TIME
• período de tolerância em dias para alterar a
senha após o primeiro login bem-sucedido
depois da expiração da senha.

11
Perfis
• Histórico de Senha:
– PASSWORD_REUSE_TIME
• número de dias antes que uma senha possa ser
reutilizada.
– PASSWORD_REUSE_MAX
• número máximo de vezes que uma senha pode
ser reutilizada.
– PASSWORD_VERIFY_FUNCTION
• função PL/SQL que verifica a complexidade de
uma senha antes dela ser atribuída.

12
Função de Senha fornecida pelo usuário
• A função deve ser criada no esquema SYS e precisa
ter a seguinte especificação:
– nome_função (
parâmetro_idusuário IN VARCHAR2(30),
parâmetro_senha IN VARCHAR2(30),
antiga_parâmetro_senha IN VARCHAR2(30))
RETURN BOOLEAN

13
Verificação Senha - VERIFY_FUNCTION
• Comprimento mínimo de quatro caracteres;
• Senha não deve ser igual ao nome de usuário;
• Senha deve ter pelo menos um caractere
alfabético, um numérico e um especial;
• Senha deve diferir da senha anterior em pelo
menos três letras.

14
Criando um Perfil
CREATE PROFILE meuProfile LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_LIFE_TIME 30
PASSWORD_REUSE_TIME 30
PASSWORD_VERIFY_FUNCTION verificaFuncao
PASSWORD_GRACE_TIME 5;

15
Alterando um Perfil
ALTER PROFILE meuProfile
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME 10;

16
Eliminando um perfil
DROP PROFILE meuProfile;

DROP PROFILE novoProfile CASCADE;

17
Limite de recurso em nível de Sessão
• CPU_PER_SESSION
– Tempo total de CPU medido em centésimos de segundos.
• SESSIONS_PER_USER
– Número de sessões simultâneas permitidas por nome de
usuário.
• CONNECT_TIME
– Tempo de conexão decorrido medido em minutos.

18
Limite de recurso em nível de Sessão
• IDLE_TIME
– Períodos de inatividade medidos em minutos.
• LOGICAL_READS_PER _SESSION
– Número de blocos de dados (leituras físicas e
lógicas).
• PRIVATE_SGA
– Espaço privado na SGA medido em bytes.

19
Limites de Recursos em nível de chamada
• CPU_PER_CALL
– Tempo de CPU por chamada em centésimos de
segundo.
• LOGICAL_READS_PER _CALL
– Número de blocos de dados que podem ser lidos
por chamada.

20
Criando um Perfil: Limite de Recurso
CREATE PROFILE novoProfile LIMIT
SESSIONS_PER_USER 2
CPU_PER_SESSION 10000
IDLE_TIME 60
CONNECT_TIME 480;

21
Operações
• Alterando a Cota de Usuário no Tablespace
– ALTER USER aluno QUOTA 0 ON data;
• Eliminando um Usuário
– DROP USER aluno;
• Use a cláusula CASCADE se o esquema contiver
objetos
– DROP USER aluno CASCADE;

22
Monitorando Usuários
• DBA_USERS
– USERNAME
– USER_ID
– CREATED
– ACCOUNT_STATUS
– LOCK_DATE
– EXPIRY_DATE
– DEFAULT_TABLESPACE
– TEMPORARY_TABLESPACE
23
Monitorando Usuários
• DBA_TS_QUOTAS
– USERNAME
– TABLESPACE_NAME
– BYTES
– MAX_BYTES
– BLOCKS
– MAX_BLOCKS

24
Gerenciamento de Privilégios
Conceitos Gerais

25
Tipos de Privilégios
• Sistema
– permite que usuários executem determinadas
ações no banco de dados.
• Objeto
– permite que usuários acessem e manipulem um
objeto específico.
• Existem cerca de 126 privilégios de sistema.

26
Tipos de Privilégios
• A palavra-chave ANY nos privilégios significa
que os usuários têm o privilégio em todos os
esquemas.
• O comando GRANT adiciona um privilégio a um
usuário ou grupo de usuários.
• O comando REVOKE retira/exclui os privilégios.

27
Privilégios de Sistema: Exemplos
• INDEX
– CREATE ANY INDEX
– ALTER ANY INDEX
– DROP ANY INDEX

28
Privilégios de Sistema: Exemplos
• TABLE
– CREATE TABLE
– CREATE ANY TABLE
– ALTER ANY TABLE
– DROP ANY TABLE
– SELECT ANY TABLE
– UPDATE ANY TABLE
– DELETE ANY TABLE

29
Privilégios de Sistema: Exemplos
• SESSION
– CREATE SESSION
– ALTER SESSION
– RESTRICTED SESSION

30
Privilégios de Sistema: Exemplos
• TABLESPACE
– CREATE TABLESPACE
– ALTER TABLESPACE
– DROP TABLESPACE
– UNLIMITED TABLESPACE

31
Concedendo Privilégios de Sistema
• GRANT CREATE SESSION, CREATE TABLE
TO gerente;

• GRANT CREATE SESSION TO scott WITH


ADMIN OPTION;

32
Privilégios SYSOPER
• SYSOPER
– STARTUP
– SHUTDOWN
– ALTER DATABASE OPEN | MOUNT
– ALTER DATABASE BACKUP CONTROLFILE
– ALTER TABLESPACE BEGIN/END BACKUP
– RECOVER DATABASE
– ALTER DATABASE ARCHIVELOG
– RESTRICTED SESSION

33
Privilégios SYSDBA
• SYSDBA
– Privilégios SYSOPER WITH ADMIN OPTION
– CREATE DATABASE
– RECOVER DATABASE UNTIL

34
Gerenciamento de Papéis
Conceitos Gerais

35
Benefícios dos Papéis
• Concessão de privilégios reduzida;
• Gerenciamento dinâmico de privilégios;
• Disponibilidade seletiva de privilégios;
• Concedidas através do S/O;
• Sem revogações em cascata;
• Desempenho melhorado.

36
Criando Papéis
CREATE ROLE novoPapel;

CREATE ROLE meuPapel


IDENTIFIED BY teste;

CREATE ROLE maisPapel


IDENTIFIED EXTERNALLY;

37
Usando Papéis Predefinidos
• CONNECT, RESOURCE
– são fornecidas para manter a retrocompatibilidade.
• DBA
– todos os privilégios de sistema WITH ADMIN
OPTION.
• EXP_FULL_DATABASE
– privilégios para exportar o banco de dados.
• IMP_FULL_DATABASE
– privilégios para importar o banco de dados.

38
Usando Papéis Predefinidos
• DELETE_CATALOG_ROLE
– privilégios DELETE sobre tabelas de dicionário
de dados.
• EXECUTE_CATALOG_ROLE
– privilégio EXECUTE sobre pacotes de
dicionário de dados.
• SELECT_CATALOG_ROLE
– privilégio SELECT sobre tabelas de dicionário
de dados.

39
Modificando Papéis
ALTER ROLE meuPapel
IDENTIFIED BY teste;

ALTER ROLE novoPapel


IDENTIFIED EXTERNALLY;

ALTER ROLE maisPapel


NOT IDENTIFIED;

40
Designando Papéis
• GRANT meuPapel TO aluno;

• GRANT meuPapel TO novoPapel

• GRANT meuPapel TO aluno WITH ADMIN


OPTION;

41
Estabelecendo Papéis Default
• ALTER USER aluno DEFAULT ROLE
meuPapel, novoPapel;

• ALTER USER aluno DEFAULT ROLE ALL;

• ALTER USER aluno DEFAULT ROLE ALL


EXCEPT meuPapel;

• ALTER USER aluno DEFAULT ROLE NONE;

42
Ativando e Desativando Papéis
• Desative uma atribuição para revogar
temporariamente a atribuição de um usuário.
• Ative uma atribuição para concedê-la
temporariamente.
• O comando SET ROLE ativa e desativa
atribuições.
• Atribuições default são ativadas para um usuário
quando o login é estabelecido.
• É possível que uma senha seja necessária para
ativar uma atribuição.

43
Ativando e Desativando Papéis
• SET ROLE meuPapel;

• SET ROLE meuPapel IDENTIFIED BY teste;

• SET ROLE ALL EXCEPT meuPapel;

• SET ROLE NONE;

44
Removendo Papéis de Usuários
• REVOKE meuPapel FROM aluno;

• REVOKE meuPapel FROM PUBLIC;

Apagando Papéis de Usuários


• DROP ROLE meuPapel;

45

Você também pode gostar