English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Primeiro vamos falar sobre o uso básico:
Primeiro, siga11G antes de fazer
conn / as sysdba;
create user test identified by test;
ORA-65096: Nome de usuário ou nome de papel comum inválido.
Pelo que sei da documentação oficial, 'tentar criar um usuário comum, é necessário usar C## ou c## no início', neste momento, pode-se ter uma dúvida, o que é usuário comum? Mas vamos ver se funciona antes de mais nada
create C##user test identified by test;
Sucesso na criação
SQL>show con_name;
CON_NAME
------------------------------
CDB$ROOT
select con_id, dbid, NAME, OPEN_MODE from v$pdbs;
CON_ID DBID NAME OPEN_MODE
---------- ---------- ------------------------------ ----------
2 4066409480 PDB$SEED READ ONLY
3 2270995695 PDBORCL MOUNTED
SQL>alter session set container=PDBORCL;
Neste momento, você pode criar o usuário usando create user test identified by test;
CDB e PDB são ORACLE 12C é uma nova característica brilhante, devido à sua introdução, muitas mudanças foram feitas na gestão convencional do banco de dados Oracle, aqui estão listados alguns dos métodos básicos de gestão cdb e pdb
Gráfico de Relação cdb e pdb
ORACLE 12Versão C
SQL> select * from v$version; BANNER CON_ID -------------------------------------------------------------------------------- ---------- Banco de Dados Oracle 12c Edição Empresa Release 12.1.0.1.0 - 64bit Produção 0 PL/Lançamento SQL 12.1.0.1.0 - Produção 0 CORE 12.1.0.1.0 Produção 0 TNS para Linux: Versão 12.1.0.1.0 - Produção 0 Versão NLSRTL 12.1.0.1.0 - Produção 0
Iniciar/Fechar pdb
SQL> startup Instância ORACLE iniciada. Área Global Total do Sistema 597098496 bytes Tamanho Fixo 2291072 bytes Tamanho Variável 272632448 bytes Banco de Dados Buffers 314572800 bytes Redo Buffers 7602176 bytes Banco de Dados montado. Banco de Dados aberto. SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs; CON_ID DBID NOME MODO ABERTO ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED LEITURA APENAS 3 3313918585 PDB1 MONTADO 4 3872456618 PDB2 MONTADO SQL> alter PLUGGABLE database pdb1 open; Banco de Dados Plugável alterado. SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs; CON_ID DBID NOME MODO ABERTO ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED LEITURA APENAS 3 3313918585 PDB1 LEITURA E ESCRITA 4 3872456618 PDB2 MONTADO SQL> alter PLUGGABLE database pdb1 close; Banco de Dados Plugável alterado. SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs; CON_ID DBID NOME MODO ABERTO ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED LEITURA APENAS 3 3313918585 PDB1 MONTADO 4 3872456618 PDB2 MONTADO SQL> alter PLUGGABLE database all open; Banco de Dados Plugável alterado. SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs; CON_ID DBID NOME MODO ABERTO ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED LEITURA APENAS 3 3313918585 PDB1 LEITURA E ESCRITA 4 3872456618 PDB2 LEITURA E ESCRITA SQL> alter PLUGGABLE database all close; Banco de Dados Plugável alterado. SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs; CON_ID DBID NOME MODO ABERTO ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED LEITURA APENAS 3 3313918585 PDB1 MONTADO 4 3872456618 PDB2 MONTADO SQL> alter session set container=pdb1; Session altered. SQL> startup Banco de Dados Plugável aberto. SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs; CON_ID DBID NOME MODO ABERTO ---------- ---------- ------------------------------ ---------- 3 3313918585 PDB1 LEITURA E ESCRITA
A gestão do pdb pode ser feita tanto no cdb quanto no pdb. Se for no cdb, é necessário o keyword PLUGGABLE, se for no pdb, é diretamente como um banco de dados comum
Login pdb
[oracle@xifenfei ~]$ lsnrctl status LSNRCTL para Linux: Versão 12.1.0.1.0 - Produção em 12-PODE-2013 08:07:02 Direitos de Autor (c) 1991, 2013, Oracle. Todos os direitos reservados. Conectando a (DESCRICAO=(ENDEREÇO=(PROTOCOLO=TCP)(HOST=xifenfei)(PORT=1521))) ESTADO do LISTENER ------------------------ Alias LISTENER Versão TNSLSNR para Linux: Versão 12.1.0.1.0 - Produção Data de Início 11-PODE-2013 18:30:54 Tempo de Uptime 0 dias 13 hr. 36 min. 8 sec Nível de Trace desligado Segurança LIGADO: Autenticação do SO Local SNMP DESATIVADO Ficheiro de Parâmetros do Ouvinte /u01/app/grid/produto/12.1/rede/admin/listener.ora Arquivo de Log do Listener /u01/app/grid/diag/tnslsnr/xifenfei/listener/alert/log.xml Resumo dos Pontos de Escuta... (DESCRICAO=(ENDERECO=(PROTOCOLO=ipc)(CHAVE=EXTPROC1521))) (DESCRICAO=(ENDERECO=(PROTOCOLO=tcp)(HOST=xifenfei)(PORT=1521))) (DESCRICAO=(ENDERECO=(PROTOCOLO=tcps)(HOST=xifenfei)(PORT=5500)) (Segurança=(diretorio_do_wallet=)/u01/oracle/12.1/db_1/admin/cdb/xdb_wallet))(Apresentacao=HTTP)(Sessao=RAW)) Resumo de Serviços... Serviço "+ASM" tem 1 instância(s). Instância "+ASM", status PRONTO, tem 1 handler(s) para este serviço... Serviço "cdb" tem 1 instância(s). Instância "cdb", status PRONTO, tem 1 handler(s) para este serviço... Serviço "cdbXDB" tem 1 instância(s). Instância "cdb", status PRONTO, tem 1 handler(s) para este serviço... Serviço "pdb1" tem 1 instância(s). Instância "cdb", status PRONTO, tem 1 handler(s) para este serviço... Serviço "pdb2" tem 1 instância(s). Instância "cdb", status PRONTO, tem 1 handler(s) para este serviço... O comando foi concluído com sucesso [oracle@xifenfei ~]$ tnsping pdb1 Utilitário TNS Ping para Linux: Versão 12.1.0.1.0 - Produção em 12-PODE-2013 08:07:09 Direitos de Autor (c) 1997, 2013, Oracle. Todos os direitos reservados. Usado arquivos de parâmetros: Usado o adaptador TNSNAMES para resolver o alias A tentativa de contato (DESCRICAO = (ENDERECO = (PROTOCOLO = TCP)(HOST = xifenfei) (PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb1))) OK (20 msec) [oracle@xifenfei ~]$ sqlplus sys/xifenfei@pdb1 como sysdba SQL*Plus: Lançamento 12.1.0.1.0 Produção em sex 05 12 08:08:02 2013 Direitos de Autor (c) 1982, 2013, Oracle. Todos os direitos reservados. Conectado a: Banco de Dados Oracle 12c Edição Empresa Release 12.1.0.1.0 - 64Produção de bits Com a Partitioning, Gestão Automática de Armazenamento, OLAP, Análise Avançada e opções de Teste de Aplicação Real SQL> show con_name; CON_NAME ------------------------------ PDB1 [oracle@xifenfei ~]$ sqlplus / como sysdba SQL*Plus: Lançamento 12.1.0.1.0 Produção em sex 05 12 08:09:14 2013 Direitos de Autor (c) 1982, 2013, Oracle. Todos os direitos reservados. Conectado a: Banco de Dados Oracle 12c Edição Empresa Release 12.1.0.1.0 - 64Produção de bits Com a Partitioning, Gestão Automática de Armazenamento, OLAP, Análise Avançada e opções de Teste de Aplicação Real SQL> alter session set container=pdb1; Session altered. SQL> show con_name; CON_NAME ------------------------------ PDB1
o pdb pode ser acessado através de alter session container ou diretamente através do modo tns
criar usuário
SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT SQL> select con_id,dbid,NOME,MODO_ABERTO from v$pdbs; CON_ID DBID NOME MODO ABERTO ---------- ---------- ------------------------------ ---------- 2 4048821679 PDB$SEED LEITURA APENAS 3 3313918585 PDB1 LEITURA E ESCRITA 4 3872456618 PDB2 MONTADO SQL> create user xff identified by xifenfei; create user xff identified by xifenfei * ERRO na linha 1: ORA-65096: nome de usuário ou papel comum inválido SQL> !oerr ora 65096 65096, 00000, "nome de usuário ou papel comum inválido" // *Causa: Foi feita uma tentativa de criar um usuário ou papel comum com o nome // não era válida para usuários ou papéis comuns. Além disso // as regras usuais para nomes de usuários e papéis, usuários e papéis comuns // names must start with C## or c## and consist only of ASCII // characters. // *Action: Specify a valid common user or role name. // SQL> create user c##xff identified by xifenfei; User created. SQL> SELECT USERNAME,CON_ID,USER_ID FROM CDB_USERS WHERE USERNAME='C##XFF'; USERNAME CON_ID USER_ID ---------- ---------- ---------- C##XFF 1 103 C##XFF 3 104 SQL> alter session set container=pdb1; Session altered. SQL> show con_name CON_NAME ------------------------------ PDB1 SQL> create user xff identified by xifenfei; User created. SQL> create user c##abc identified by xifenfei; create user c##abc identified by xifenfei * ERRO na linha 1: ORA-65094: invalid local user or role name
The default container for creating users is container=all, in cdb only global users (starting with c##) can be created, which will create the user in cdb and all pdb (but the global users in pdb need to be authorized separately to access pdb). Only local users can be created in pdb
User authorization
SQL> grant connect to c##xff; Grant succeeded. SQL> select GRANTEE,con_id from cdb_ROLE_PRIVS where GRANTED_ROLE='CONNECT' AND GRANTEE='C##XFF'; CONCEDENTE CON_ID ------------------------------ ---------- C##XFF 1 SQL> grant resource to c##xff container=all; Grant succeeded. SQL> select GRANTEE,con_id from cdb_ROLE_PRIVS where GRANTED_ROLE='RESOURCE' AND GRANTEE='C##XFF'; CONCEDENTE CON_ID ------------------------------ ---------- C##XFF 1 C##XFF 3
Por padrão, a autorização do usuário é apenas para o container atual, no cdb também pode ser especificado container=all, para todos os pdb abertos e existentes para o usuário
Alterar parâmetros
SQL> alter system set open_cursors=;500 container=all; Sistema alterado. SQL> conn sys/xifenfei@pdb1 como sysdba Conectado. SQL> show parameter open_cursors; NOME TIPO VALOR ------------------------------------ ----------- ------------------------------ open_cursors inteiro 500 SQL> alter system set open_cursors=;100; alter system set open_cursors=;100 * ERRO na linha 1: ORA-01219: banco de dados ou banco de dados plugável não aberto: consultas permitidas no banco de dados fixo apenas tabelas ou vistas SQL> alter database open; Banco de dados alterado. SQL> alter system set open_cursors=;100; Sistema alterado. SQL> show parameter open_cursors; NOME TIPO VALOR ------------------------------------ ----------- ------------------------------ open_cursors inteiro 100 SQL> conn / como sysdba Conectado. SQL> show parameter open_cursors; NOME TIPO VALOR ------------------------------------ ----------- ------------------------------ open_cursors inteiro 500
Aqui você pode ver as alterações feitas no cdb, que serão herdadas pelo pdb; se houver alterações no pdb, elas overwrite os parâmetros herdados do cdb.
Declaração: o conteúdo deste artigo é extraído da Internet, pertence ao respectivo proprietário, fornecido pelos usuários da Internet de forma voluntária e auto-publicada, este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidades legais relacionadas. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie um e-mail para: notice#w3Aqui você pode ver as alterações feitas no cdb, que serão herdadas pelo pdb; se houver alterações no pdb, elas overwrite os parâmetros herdados do cdb.