Bom mais ai entramos em um Desacordo.....
essa "Função" -> "WITH ADMIN OPTION" ou WITH GRANT OPTION
não quer Dizer com opção de Conceder???
gokden
pelo o que você Passou anteriormente esta Certo.
Ate onde a minha ignorância deixa a Diferença entre as "Funções" a Cima é:
WITH ADMIN OPTION
O Usuario que um recebe esse Privilegio com essa Extensão tem a Opção de repassar e mesmo Privilegio para frente. Porem essa Extensão só e para Previlegios de Sistemas.
Create user, Create table etc.. etc...
WITH GRANT OPTION
O Usuario que um recebe esse Privilegio com essa Extensão tem a Opção de repassar e mesmo Privilegio para frente. Porem essa Extensão só e para Previlegios de Objetos....
GRANT Insert, GRANT update etc.. etc...
Procurando e Fuçando eu achei o que eu Queria...
Ou Seja Rovake de Objeto e em Cascata.
Abaixo segue alguns exercidos que podem esclarecer essa Duvida!!
Desde de já Agradeço a todos mais lembrando.....
Se estiver escrevendo m***a!!
Fico no Aguardo de Respostas...
1. Criar usuários USER1, USER2, USER3, USER4, USER5.
Selecionar tudo
CONNECT SYSTEM/ORACLE@DBSEGUR
CREATE USER1 IDENTIFIED BY USER1;
.......
2. Conceder as roles básicas principais para os usuários:
Selecionar tudo
GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO USER1,
USER2, USER3, USER4, USER5;
3. Conectar como USER1 e criar os objetos:
Selecionar tudo
CONNECT USER1/USER1@DBSEGUR
CREATE TABLE CLIENTES (COD NUMBER, NOME VARCHAR2(10));
GRANT SELECT ON CLIENTES TO USER2, USER3;
GRANT INSERT ON CLIENTES TO USER2 WITH GRANT OPTION;
INSERT INTO CLIENTES VALUES (1, ‘JOSE’);
4. Conectar como USER2 e USER3 e consultar a tabela. Funcionou? Por que?
5. Tentar inserir e apagar dados na tabela com USER2. Funcionou? Por que?
Selecionar tudo
CONNECT USER2/USER2@DBSEGUR
INSERT INTO USER1.CLIENTES VALUES (2,’MARIA’);
6. Repetir o exercício anterior com USER3. Funcionou? Por que?
7. Conectar como USER2 e conceder o privilégio para o USER3. Funcionou? Por
que?
Selecionar tudo
CONNECT USER2/USER2@DBSEGUR
GRANT INSERT ON USER1.CLIENTES TO USER3;
8. Inserir registro como USER3:
Selecionar tudo
CONNECT USER3/USER3@DBSEGUR
INSERT INTO USER1.CLIENTES VALUES (3,’PEDRO’);
9. Como USER1, revogar privilégio do USER2:
Selecionar tudo
CONNECT USER1/USER1@DBSEGUR
REVOKE INSERT ON USER1.CLIENTES FROM USER2;
aqui esta o X da Questão..
10. Conectar como USER2 e USER3 e inserir na tabela. Funcionou? Por que?
Selecionar tudo
CONNECT USER2/USER2@DBSEGUR
INSERT INTO USER1.CLIENTES VALUES (4,’JOANA’);
11.Como SYSTEM, criar role ACESSO_CLIENTES;
Selecionar tudo
CONNECT SYSTEM/ORACLE@DBSEGUR
CREATE ROLE ACESSO_CLIENTES;
GRANT ALL ON USER1.CLIENTES TO ACESSO_CLIENTES;
GRANT ACESSO_CLIENTES TO USER4;
12.Como USER4, consultar a tabela CLIENTES. Funcionou? Por que?
13. Manter o USER4 conectado, e em outra sessão como SYSTEM, revogar a role:
Selecionar tudo
CONNECT SYSTEM/ORACLE@DBSEGUR
REVOKE ACESSO_CLIENTES FROM USER4;
14.Na mesma sessão mantida como USER4, consultar novamente a tabela. O acesso foi perdido? Por que?
15.Desconectar o USER4 e reconectar. Testar novamente a consulta. O que mudou?
16.Como SYSTEM, Conceder privilégio de criar usuários para USER2, e este concederá para USER3:
Selecionar tudo
CONNECT SYSTEM/ORACLE@DBSEGUR
GRANT CREATE USER TO USER2 WITH ADMIN OPTION;
CONNECT USER2/USER2@DBSEGUR
GRANT CREATE USER TO USER3;
17.Criar usuários conectado como USER2 e USER3.
Selecionar tudo
CONNECT USER2/USER2@DBSEGUR
CREATE USER USER11 IDENTIFIED BY USER11;
18.Como SYSTEM, REVOGAR O privilégio de criar usuários de USER2.
19. Tentar criar outros usuários como USER2 e USER3. Funcionou? Por que?
Selecionar tudo
CONNECT USER2/USER2@DBSEGUR
CREATE USER USER13 IDENTIFIED BY USER13;
20.Criar a role R_SISTEMA com senha e conceder privilégios de DELETE:
Selecionar tudo
CONNECT SYSTEM/ORACLE@DBSEGUR
CREATE ROLE R_SISTEMA IDENTIFIED BY A12345;
GRANT ALL ON USER1.CLIENTES TO R_SISTEMA;
21.Conceder a role R_SISTEMA como não-default para o usuário USER5.
Selecionar tudo
GRANT R_SISTEMA TO USER5;
ALTER USER USER5 DEFAULT ROLE ALL EXCEPT R_SISTEMA;
22.Conectar como USER5 e tentar consultar a tabela. Funcionou? Por que?
23. Ligando a role, a consulta funciona. Porém, somente através do sistema o usuário poderia fazer isso, por segurança:
Selecionar tudo
SET ROLE R_SISTEMA IDENTIFIED BY A12345;
SELECT * FROM USER1.CLIENTES;
24. Consultar o dicionário de dados para verificar os privilégios de cada usuário:
Selecionar tudo
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE LIKE ‘USER%’;
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE LIKE ‘USER%’;
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE LIKE ‘USER%’;
25. Remover os usuários criados:
Selecionar tudo
DROP USER USER1 CASCADE;
DROP USER USER2 CASCADE;
DROP USER USER3 CASCADE;
DROP USER USER4 CASCADE;
DROP USER USER5 CASCADE;
vocês que são bem mais experientes...
Estou correto sobre a teoria de que Revoke de Objeto e em Cascata????