- Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 8 meses atrás por
ramasine.
-
AutorPosts
-
5 de julho de 2010 às 6:36 pm #94930
ramasine
ParticipanteCaros,
Tenho a seguinte situação:
Preciso limitar a ação do usuário da seguinte forma, impedir que ele, ao logar com seu user, crie objetos em tablespaces que não forem assignadas a ele, especificadas a ele. Isso é possível?
Uma trigger poderia ajudar?
Já criei o user com a default tablespace que é dele, mas ao logar e criar uma tabela apontando uma outra tablespace, o oracle deixa criar….normalmente…
É alguma imbecilidade qu estou esquecendo??
Oracle 11.2
5 de julho de 2010 às 7:36 pm #94931CleitonHanzen
ParticipanteOpá….
Tá lembrado das Quotas??? ou melhor, do privilégio UNLIMITED TABLESPACE….maldita role RESOURCE que concede esse privilégio automaticamente…..rsrsrsrs….
5 de julho de 2010 às 7:58 pm #94932ramasine
ParticipanteOPÁ foi boa..!!!!!!!
Olha um exemplo, criei um user, atribui quota em uma tablespace e quota 0 onde eu não quero que ele crie NADA…dei grant de create session e create table SOMENTE ao user.
Faço login com ele na base de dados, e mesmo assim crio objetos em qq lugar … 🙁
O oracle é o 11.2.0.1 em AIX 6.1
6:32:56 sql@schema01 > show user
USER é “SYS”
16:33:00 sql@schema01 > CREATE USER isa
16:36:38 2 IDENTIFIED BY isa
16:36:38 3 TEMPORARY TABLESPACE TEMP
16:36:38 4 QUOTA 10M ON EPMS_DEV_DAT
16:36:38 5 QUOTA 0 ON EPMS_CER_DAT
16:36:38 6 QUOTA 0 ON EPMS_CER_IDX
16:36:38 7 QUOTA 0 ON EPMS_CER_LOG
16:36:38 8 ACCOUNT UNLOCK;Utilizador criado.
6:32:56 sql@schema01 > show user
USER é “SYS”
16:36:47 sql@schema01 > grant create session to isa;
Concessão com êxito.
16:36:58 sql@schema01 > grant create table to isa;
Concessão com êxito.
16:37:05 sql@epms > disc
Desligado de Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options16:37:32 sql@schema01 > conn isa@schema01
Introduzir senha: ***Ligado.
16:37:41 sql@epms > select * from session_privs;
PRIVILEGE
CREATE SESSION
CREATE TABLE2 linhas seleccionadas.
16:38:27 sql@schema01 > create table t1 (col number(1))
16:38:54 2 tablespace EPMS_CER_DAT;Tabela criada.
16:41:31 sql@schema01 > create table t2 (col number(1))
16:43:24 2 tablespace EPMS_DEV_IDX;Tabela criada.
16:39:06 sql@epms > SHOW USER
USER é “ISA”
auauhaha….
6 de julho de 2010 às 2:07 pm #94947ramasine
Participantesql@schema1 > conn sys@schema1 as sysdba
Introduzir senha: *********Ligado.
CREATE USER orateste
IDENTIFIED BY orateste
TEMPORARY TABLESPACE TEMP
ACCOUNT UNLOCK;GRANT CREATE SESSION TO orateste;
GRANT CREATE TABLE TO orateste;Sem alterar nada…ele deixa criar o objeto!
sql@schema1 > conn orateste@schema1
Introduzir senha: ********Ligado.
sql@schema1 > create table t2(col number(1))
2 tablespace schema1_CER_DAT;Tabela criada.
Atentar que existem QUOTAS definidas nesta tablespace, e NENHUMA para este user (orateste)
sql@schema1 > alter session set deferred_segment_creation=false;
sql@schema1 > create table t2(col number(1))
2 tablespace schema1_CER_DAT;create table t2(col number(1))
*
ERRO na linha 1:
ORA-01950: nenhum privilégio no tablespace ‘schema1_CER_DAT’E aí?? É isso mesmo?? rss
Alterando esse parâmetro para FALSE eu consigo fazer com que o user só crie objetos onde tem permissões para isso??
-
AutorPosts
- Você deve fazer login para responder a este tópico.