Criar novo usuário no Oracle 12c
O Oracle 12c traz a arquitetura multitenant CDB/PDB. Se você criar um usuário comum diretamente dentro do banco de dados contêiner (CDB), ocorrerá um erro. Usuários comuns criados no CDB precisam obrigatoriamente ter o prefixo c## / C##.
Fazer login
- Abra o prompt de comando do Windows cmd e inicie o sqlplus
sqlplus
- Acesse o banco de dados com a conta de superadministrador
Digite nome de usuário: sys as sysdba
Digite senha: 【Informe a senha sys definida durante a instalação】Code language: JavaScript (javascript)
Mensagem de login com sucesso:Conectado a: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Criar usuário
Forma incorreta
Objetivo: criar usuário cat com senha 123456
Execute o SQL:
CREATE USER cat IDENTIFIED BY 123456;
ORA-65096: nome de usuário ou função comum inválidoCode language: HTTP (http)
Motivo do erro: você está no contêiner raiz do CDB. Usuários comuns exigem o prefixo c##, o nome cat não segue as regras de nomenclatura.
Forma correta de criar usuário comum
Execute o SQL:
CREATE USER c##cat IDENTIFIED BY Bm123321;Code language: CSS (css)
Resultado da execução:Usuário criado.
Conceder permissões ao usuário
Comando de concessão incorreto
GRANT CONNECT, RESOURCE, DBA TO cat;
ORA-01917: usuário ou função 'CAT' não existeCode language: JavaScript (javascript)
O nome do usuário é c##cat. Ao conceder permissões, use exatamente o mesmo nome usado na criação, não use a abreviação cat.
Comando de concessão correto
GRANT CONNECT, RESOURCE, DBA TO c##cat;Code language: CSS (css)
Explicação das permissões:
CONNECT: permissão básica de login e conexãoRESOURCE: função muito usada no desenvolvimento, permite criar tabelas, índices e outros objetosDBA: privilégios completos de administrador de banco de dados (use apenas em ambiente de teste, não recomendado para uso livre em produção)
Validar login do novo usuário
- Execute
exitpara encerrar a sessão do administrador sys e abra o sqlplus novamente
SQL> exitCode language: PHP (php)
- Tente fazer login com dados incorretos
Digite nome de usuário: cat
Digite senha: 123456
Erro:ORA-01017: nome de usuário/senha inválido; login negado
- Método correto
Digite nome de usuário: c##cat
Digite senha: 123456Code language: CSS (css)
Conexão com o banco de dados realizada com sucesso.
Criar usuário