CRIAR E VERIFICAR USUARIOS ORACLE

 Tópico anterior Próximo tópico Novo tópico

CRIAR E VERIFICAR USUARIOS ORACLE

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#81447 - 03/05/2005 15:05:33

ALMARTI
NITEROI
Cadast. em:Dezembro/2003


Membro da equipe

Última edição em Editado em 03/05/2005 15:06:44 por ALMARTI por

Como criar, excluir, modificar, bloquear usurios no Oracle via Visual Basic. Tentei conexo.execut mas sempre d caracteres invlidos, utilizando a SQL gerada pelo prprio Oracle. Como criar usrios? Utilizo a verso 9i



CREATE USER "usuario"  PROFILE "DEFAULT"
    IDENTIFIED BY "senha" DEFAULT TABLESPACE "USERS"
    ACCOUNT UNLOCK;
GRANT "CONNECT" TO "usuario";



______________________________________________
Uai Solues em Software
suporte@uaisolucoes.com.br

#81477 - 03/05/2005 18:28:15

USUARIO.EXCLUIDOS

Cadast. em:


Se no me engano, na string criada para voc utilizar no EXECUTE, substitua as aspas duplas por simples:

CREATE USER 'usuario' ....

FISH



#81484 - 03/05/2005 18:53:48

ALMARTI
NITEROI
Cadast. em:Dezembro/2003


Membro da equipe
No funciona. Aspas simples, sem aspas, por srings, nada deu. Sempre Caracteres invlidos

______________________________________________
Uai Solues em Software
suporte@uaisolucoes.com.br

#81501 - 03/05/2005 20:23:40

USUARIO.EXCLUIDOS

Cadast. em:


Ao criar um Usurio Oracle por meio de cdigo, pelo mtodo Execute de um Connection ou de um Command, voc vai precisar executar vrios comandos, na verdade.
O primeiro o que cria efetivamente o usurio e tem a sintaxe bem similar que voc postou (deve separar a criao do objeto) e os demais so relacionados dotao de direitos de acesso e trabalho. Assim, voc postou:

CREATE USER "usuario"  PROFILE "DEFAULT"
    IDENTIFIED BY "senha" DEFAULT TABLESPACE "USERS"
    ACCOUNT UNLOCK;
GRANT "CONNECT" TO "usuario";

Essa string deve ser dividida em duas, como em:

...
DB.Execute "CREATE USER 'usuario'  PROFILE 'DEFAULT'  IDENTIFIED BY 'senha' DEFAULT TABLESPACE 'USERS'  ACCOUNT UNLOCK"
...
DB.Execute "GRANT 'CONNECT' TO 'usuario'"
...

==========================================

Observe que os smbolos de ponto-e-vrgula foram suprimidos do comando SQL original.  Esse caractere interpretado de forma equivocada quando da execuo pontual (Execute do ADODB) e gera a mensagem de "Caracteres Invlidos".

Algumas dicas (mesmo que voc no as tenha solicitado, quem sabe podem ajudar):


- O uso de nomes sempre em maiscula, na lide com Oracle e para todos os objetos, incluindo as senhas, receita para evitar problemas de interpretao em distintas plataformas (O Oracle pode ser "servido" desde um Linux, por exemplo).

- Evitar o uso de palavras-chave para nomear campos, usurios, tabelas ou quaisquer outros objetos Oracle sempre ir poupar problemas futuros, quer de manuteno, quer de migrao. Palavras como ALIAS, AUDIT, DATE, DATA, LPT etc, portanto, devem ser evitadas.

- Tabelas Oracle funcionam bem com um grande nmero de campos, com poucos ou nenhum ndice e com ausncia de chaves de restrio (constraints), como as chaves primrias ou chaves externas. Porm, o desempenho extremamente maior quando o nmero de campos pequeno, h ndices no-compostos para os campos e os relacionamentos se fazer presentes.

- Evitar o uso de valores nulos uma excelente pedida. Ao criar um campo numrico, seu padro pode ser zero, por exemplo. Mas em campos do tipo data, esse tratamento mais complexo. Assim, h situaes onde uma data no pode ser demonstrada ou seja, o campo deveria estar tecnicamente "nulo". Por exemplo, suponha o campo dt_fim_oper como um campo onde a data de encerramento de uma operao seja inserido. Se essa operao no terminar, e isso uma das possibilidades, qual valor inserir? Inserindo NULL, os ndices no sero adequadamente utilizados, no caso de uma seleo, por exemplo, ...WHERE dt_fim_oper IS NULL... Caso a estrutura tivesse o valor "31/12/9999", por outro lado, a seleo passaria ser ...WHERE dt_fim_oper < TO_DATE('31/12/9999 00:00:00','DD/MM/YYYY HH24:MI:SS')... e os ndices passaria funcionar.
Mas no to simples. Para estes casos, h de se pesar a quantidade de registros que, durante a vida da tabela, teriam esse campo preenchido por "31/12/9999".  Caso esse valor atinja 25% da tabela, inserir esse valor como padro d um resultado contrrio ao esperado, ou seja, o ndice passa ser mais lento e o uso de acesso disco, maior. Como resolver, ento? Simples: Em adio um campo data, como o do exemplo, acrescente um campo numrico, com preciso 1 e valor padro = zero. Ao gravar a data, altere esse campo para um. Se fosse adicionado um campo FLAG_TERMINADO ao exemplo, a string de seleo passaria ser: ...WHERE FLAG_TERMINADO = 0...  e isso atuaria acionando os ndices de uma forma bem mais eficiente.

- Utilizar SEQUENCES uma excelente idia para a auto-numerao de campos de identidade de registros. Mas o uso de SEQUENCES, por s s, apenas parte da soluo. Junto aos SEQUENCES, interessante utilizar-se de TRIGGERS que disparem os NEXTVAL dos SEQUENCES quando uma operao de adio seja realizada. No caia na tentao de demonstrar o ID do novo registro antes de salv-lo, (como em "SELECT SEQ_TB_USUARIOS.NEXTVAL AS ID FROM DUAL"), pois se ocorrer uma falha qualquer, mesmo alheia aplicao, o valor do ID ter saltado, "de graa". Ainda com relao aos SEQUENCES, numerar notas fiscais com o uso de um SEQUENCE pressupe que nenhum registro de uma tabela de notas fiscais poder ser excluido (o que, alis, deveria ser padro mesmo). Dessa forma, se a orientao do cliente no se adapta muito bem essa regra, o uso de SEQUENCES para esse tipo de numerao pode trazer aborrecimentos posteriores. prefervel o uso de uma tabela adicional, onde seja possvel retroceder o valor do ltimo numerador.

- O uso de VIEWS no-parametrizadas excelente para combinar o poder do VB, do Crystal Reports e do Oracle. Porm, quando o nmero de registros combinados pelo retorno muito elevado, uma vez que no h ndices para VIEWS, o relatrio pode se tornar muito lento. Para esses casos, d preferncia ao uso de tabelas temporrias (temporrias mesmo, aquelas que so criadas somente para a seo aberta e destrudas assim que a seo se encerra), pois a performance muito maior. J as VIEWS parametrizadas se saem muito bem, mesmo nestas situaes.

- Ao criar uma tabela cujo volume de registros se estime que ser muito elevado, crie essa tabela de forma PARCIONADA. Uma tabela parcionada permite separar logicamente seus registros (por exemplo, a partio "A" ter registros gerados entre 01/01/2000 e 31/12/2000, a partio "B" ter  registros gerados entre 01/01/2001 e 31/12/2001 etc), pois os processos de pesquisa e filtragem sero bem otimizados com essa estrutura. Ao pesquisar uma tabela parcionada, pode-se definir em qual partio pesquisar, ou deixar que o SGDB decida isso.

- Evitar a utilizao de tabelas de usurios especficas aplicao, adotando os objetos USER do prprio Oracle para manipular o controle de acessos ao banco de dados a opo mais acertada, pois alm de minimizar a codificao de controle de mais uma (ou mais) tabela, permite que gatilhos disparem procedimentos de gerao de LOG de utilizao que, de outro modo, seriam bastante trabalhosos. Como adio, o desempenho e a fiabilidade so muito maiores em se adotando esse mtodo de desenvolvimento.

- No importa se a aplicao PRINCIPAL da base de dados ser adotada para a plataforma Windows ou no. O desenho do esquema de dados dever contemplar a possibilidade de migrao de plataformas, bem como o acesso via WebForms e principalmente, otimizar o uso de Recordsets desconectados. Desta forma, se sua aplicao for executada concomitantemente aplicaes Web, o desempenho do servio no se far to pesado ao servidor.

- No h nenhum inconveniente que seja impeditivo, nem que no seja bem conhecido de todos ns, no uso de ODBC. Mas adotar o driver MSDAORA de forma direta (como em "Provider=MSDAORA;Data Source=BANCO;User ID=USUARIO;Password=SENHA"), o desempenho ser at 80% superior (e esse teste eu fiz em vrios diferentes clientes, com os mesmos resultados). Claro, para usufruir desse ganho de desempenho outras pequenas regras e "artifcios" da linguagem SQL devem ser observados e adotados. Por exemplo, analise uma seleo como:
"SELECT * FROM ESQUEMA1.TABELA1 A, ESQUEMA1.TABELA2 B WHERE A.ID = B.CAMPOCHAVE AND A.ID = 30 AND B.FLAG_PAGO = 1"
Ela ser mais eficiente se reescrita como:
"SELECT * FROM (SELECT * FROM ESQUEMA1.TABELA1 WHERE ID = 30) A, (SELECT * FROM ESQUEMA1.TABELA2 WHERE FLAG_PAGO = 1) B WHERE A.ID = B.CAMPOCHAVE"
D mais trabalho, sem dvidas, mas o ganho o bastante para vale pena.

- Consultas do tipo UNION / UNION ALL normalmente representam um problema se o retorno tiver de ser filtrado. O fato que esse tipo de consulta gera um recordset que no possui ndices. Ao utilizar-se das  UNION / UNION ALL, certifique-se de que todos os filtros sejam feitos DURANTE essas consultas, e no posteriormente elas.

- Evitar o uso do "SELECT *..." uma boa dica de otimizao, neste caso, dos recursos da estao de trabalho. Selecionar apenas e unicamente os campos que sero utilizados uma regra para no extrapolar memria e recursos de trfego de rede. Da mesma forma, evite abrir e fechar diversas tabelas para obter os valores visualizveis entre as tabelas de um relacionamento. Assim, por exemplo, pode-se fazer como em:
...
RS2.Open "SELECT DESCRICAO FROM ESQUEMA1.TB_FORMAS_PAGTO WHERE ID = " & RS1.Fields("FORMA_PAGTO") & " "
If Not RS2.EOF = True Then Text1.Text = RS2.Fields("DESCRICAO")
RS2.Close
...
Porm o mais adequado seria que a instruo SQL do objeto RS1 j trouxesse a descrio, em lugar do ID (quando o ID no for mais necessrio, claro), evitando assim um novo processo no servio de dados.

Bom, chega de querer dar aula, daqui h pouco vocs me expulsam por ser to chato. Espero que ajude.



#81513 - 03/05/2005 21:23:51

ALMARTI
NITEROI
Cadast. em:Dezembro/2003


Membro da equipe
Ufa!!! Que aula. Ah, recebi tambem seu recado anterior. Nao estou conseguindo te ligar. O erro agora mudou. Agora d nome de usuario ou atribuio ausente. O que mais estarei fazendo errado?

______________________________________________
Uai Solues em Software
suporte@uaisolucoes.com.br

#81582 - 04/05/2005 13:24:21

USUARIO.EXCLUIDOS

Cadast. em:


Aqui vai um trecho de uma rotina que cria um usurio Oracle, com direitos (quase) integrais. Espero que ajude.

Observe que para criar um usurio e seus direitos, no mnimo, o acesso ao Oracle dever ser feito utilizando um User ID com direitos suficientes para a ao (apesar de ser bvio, muitos colegas aqui podem no associar esse fato de imediato, porisso o comentrio).

...
TrocaMSGProc "Gerando o usurio master da aplicao...Por favor, aguarde...", "Esquema de dados", 0
...
ioDB.Execute "CREATE USER ioPM IDENTIFIED BY VALUES '04C513033A0DD1C8' DEFAULT TABLESPACE SYSTEM TEMPORARY TABLESPACE TEMP PROFILE DEFAULT ACCOUNT UNLOCK "
...
TrocaMSGProc "Atribuindo direitos ao usurio master da aplicao...Por favor, aguarde...", "Esquema de dados", 3
...
ioDB.Execute "GRANT DBA TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CTXAPP TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT WKUSER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CONNECT TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT OLAP_DBA TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT RESOURCE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT XDBADMIN TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT EJBCLIENT TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT JAVAIDPRIV TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT JAVA_ADMIN TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT JAVASYSPRIV TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT JAVA_DEPLOY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT OEM_MONITOR TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT AQ_USER_ROLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT JAVAUSERPRIV TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT HS_ADMIN_ROLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT JAVADEBUGPRIV TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT WM_ADMIN_ROLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT AUTHENTICATEDUSER TO ioPM WITH ADMIN
OPTION "
...
ioDB.Execute "GRANT EXP_FULL_DATABASE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT IMP_FULL_DATABASE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT SALES_HISTORY_ROLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DELETE_CATALOG_ROLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT SELECT_CATALOG_ROLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT EXECUTE_CATALOG_ROLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT AQ_ADMINISTRATOR_ROLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT LOGSTDBY_ADMINISTRATOR TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT RECOVERY_CATALOG_OWNER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT GATHER_SYSTEM_STATISTICS TO ioPM WITH ADMIN OPTION "
...
TrocaMSGProc "Alterando estrutura de esquema para o usurio master da aplicao...Por favor, aguarde...", "Esquema de dados", 6
...
ioDB.Execute "ALTER USER ioPM DEFAULT ROLE ALL "
...
TrocaMSGProc "Atribuindo direitos ao usurio master da aplicao...Por favor, aguarde...", "Esquema de dados", 9
...
ioDB.Execute "GRANT AUDIT ANY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP USER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT RESUMABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER USER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ANALYZE ANY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT BECOME USER TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT CREATE ROLE TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.CREATE_RULE_OBJ, GRANTEE = 'ioPM', GRANT_OPTION => TRUE ) END"
...
ioDB.Execute "GRANT CREATE TYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE USER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE VIEW TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER SYSTEM TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT AUDIT SYSTEM TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP PROFILE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER PROFILE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER SESSION TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT DROP ANY ROLE TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.DROP_ANY_RULE,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT DROP ANY TYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY VIEW TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT QUERY REWRITE TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT ALTER ANY ROLE TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.ALTER_ANY_RULE, GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT ALTER ANY TYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER DATABASE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE CLUSTER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE LIBRARY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE PROFILE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE SESSION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE SYNONYM TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE TRIGGER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY INDEX TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT GRANT ANY ROLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT LOCK ANY TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT UNDER ANY TYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT UNDER ANY VIEW TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY INDEX TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT ALTER ANY TABLE TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.CREATE_ANY_RULE,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT CREATE ANY TYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY VIEW TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT CREATE OPERATOR TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.CREATE_RULE_SET_OBJ,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT CREATE SEQUENCE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE SNAPSHOT TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP TABLESPACE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT UNDER ANY TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER TABLESPACE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT BACKUP ANY TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY INDEX TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE DIMENSION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE INDEXTYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE PROCEDURE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DELETE ANY TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY CLUSTER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY CONTEXT TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY LIBRARY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY OUTLINE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY SYNONYM TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT DROP ANY TRIGGER TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT EXECUTE ANY TYPE TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT INSERT ANY TABLE TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE (PRIVILEGE => 'MANAGE_ANY', GRANTEE ='ioPM', ADMIN_OPTION => TRUE) END "
...
ioDB.Execute "GRANT SELECT ANY TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT UPDATE ANY TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY CLUSTER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY LIBRARY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY OUTLINE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY TRIGGER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT COMMENT ANY TABLE TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT CREATE TABLESPACE TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE (PRIVILEGE => 'DEQUEUE_ANY',GRANTEE ='ioPM',ADMIN_OPTION => TRUE) END "
...
'ioDB.Execute "GRANT DROP ANY OPERATOR TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.DROP_ANY_RULE_SET,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT DROP ANY SEQUENCE TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT DROP ANY SNAPSHOT TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_AQADM.GRANT_SYSTEM_PRIVILEGE (PRIVILEGE => 'ENQUEUE_ANY',GRANTEE ='ioPM',ADMIN_OPTION => TRUE) END "
...
ioDB.Execute "GRANT FORCE TRANSACTION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT MANAGE TABLESPACE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ON COMMIT REFRESH TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT ALTER ANY OPERATOR TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.ALTER_ANY_RULE_SET,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT ALTER ANY SEQUENCE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY SNAPSHOT TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY CLUSTER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY CONTEXT TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY LIBRARY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY OUTLINE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY SYNONYM TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY TRIGGER TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY DIMENSION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY DIRECTORY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY INDEXTYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ANY PROCEDURE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT RESTRICTED SESSION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ADMINISTER ENCRYPTION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY DIMENSION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY INDEXTYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY PROCEDURE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER RESOURCE COST TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT CREATE ANY OPERATOR TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.CREATE_ANY_RULE_SET,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT CREATE ANY SEQUENCE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY SNAPSHOT TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DEBUG ANY PROCEDURE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP PUBLIC SYNONYM TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT EXECUTE ANY LIBRARY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT FLASHBACK ANY TABLE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT GRANT ANY PRIVILEGE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT SELECT ANY SEQUENCE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY DIMENSION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY DIRECTORY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY INDEXTYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ANY PROCEDURE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE DATABASE LINK TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT EXECUTE ANY OPERATOR TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.EXECUTE_ANY_RULE_SET,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT EXEMPT ACCESS POLICY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT GLOBAL QUERY REWRITE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT UNLIMITED TABLESPACE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE PUBLIC SYNONYM TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DEBUG CONNECT SESSION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP ROLLBACK SEGMENT TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT EXECUTE ANY INDEXTYPE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT EXECUTE ANY PROCEDURE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT FORCE ANY TRANSACTION TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT SELECT ANY DICTIONARY TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ROLLBACK SEGMENT TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT CREATE ROLLBACK SEGMENT TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT CREATE ENCRYPTION PROFILE TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.CREATE_EVALUATION_CONTEXT_OBJ,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END "
...
ioDB.Execute "GRANT DROP ANY ENCRYPTION PROFILE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT DROP PUBLIC DATABASE LINK TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT ALTER ANY ENCRYPTION PROFILE TO ioPM WITH ADMIN OPTION "
...
ioDB.Execute "GRANT GRANT ANY OBJECT PRIVILEGE TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT ADMINISTER DATABASE TRIGGER TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RESOURCE_MANAGER_PRIVS.GRANT_SYSTEM_PRIVILEGE (GRANTEE_NAME ='ioPM', PRIVILEGE_NAME => 'ADMINISTER_RESOURCE_MANAGER',ADMIN_OPTION => TRUE) END "
ioDB.Execute "GRANT CREATE ANY ENCRYPTION PROFILE TO ioPM WITH ADMIN OPTION "
...
'ioDB.Execute "GRANT CREATE PUBLIC DATABASE LINK TO ioPM WITH ADMIN OPTION BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE( PRIVILEGE => SYS.DBMS_RULE_ADM.DROP_ANY_EVALUATION_CONTEXT,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.ALTER_ANY_EVALUATION_CONTEXT,GRANTEE ='ioPM',GRANT_OPTION => TRUE) END BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE(PRIVILEGE => SYS.DBMS_RULE_ADM.CREATE_ANY_EVALUATION_CONTEXT, GRANTEE ='ioPM',GRANT_OPTION => TRUE) END BEGIN SYS.DBMS_RULE_ADM.GRANT_SYSTEM_PRIVILEGE( PRIVILEGE => SYS.DBMS_RULE_ADM.EXECUTE_ANY_EVALUATION_CONTEXT, GRANTEE ='ioPM', GRANT_OPTION => TRUE) END "
ioDB.Execute "ALTER USER ioPM QUOTA UNLIMITED ON TEMP QUOTA UNLIMITED ON SYSTEM "
...
ioDB.Execute "GRANT DELETE, INSERT, SELECT, UPDATE ON OPERADOR.TEMP_CARGO_REPORT2 TO ioPM "
...


P.S.: Desculpe no responder mais cedo, no tinha visto mais o tpico.



#81652 - 04/05/2005 22:36:57

ALMARTI
NITEROI
Cadast. em:Dezembro/2003


Membro da equipe
ӓtimo, consegui criar o User. Tambem criei uma rotina que exige letras e nmeros na senha, desde que no comece com nmeros. Como fazer ento para expirar o User a cada x Dias? H alguma tabela de verificao de datas de criao, bloqueio de usurios ou expirao?

______________________________________________
Uai Solues em Software
suporte@uaisolucoes.com.br

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por WEBMASTER em 18/08/2009 10:03:45