我已经创建用户oracle 19c
并授予权限,但我无法使用该用户登录,并出现登录被拒绝错误。
我已经从命令提示符登录 sqlplus / as sysdba
然后我创建了用户
create user "c##keyan" identified by "keyan123";
我授予以下权限
grant connect to "c##keyan";
grant dba to "c##keyan";
grant resource to "c##keyan";
grant create session to "c##keyan";
我的 listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = H:\WINDOWS.X64_193000_db_home)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = ORCL)
(ORACLE_HOME = H:\WINDOWS.X64_193000_db_home)
)
)
我的 tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
此后我退出 sql 提示符并再次从命令提示符登录 sqlplus c##keyan/keyan123@//localhost:1521/orcl
我收到此错误 错误:
ORA-01017: invalid username/password; logon denied
我是否遗漏了什么?请提供建议。
用户名中有“##”,所以我认为你不知道这是多租户容器数据库 (cdb)。你必须在创建用户和访问权限时指定容器,或者在连接到数据库时指定容器。Oracle Doc
删除用户名中的引号,以避免创建区分大小写的用户名。区分大小写的密码是可以的,但区分大小写的用户名会产生一些问题。
如果您确实需要区分大小写的用户名,则必须始终使用引号。在 Windows 上,您需要转义这些引号并像这样登录:
另外,您确定要使用 CDB 而不是 PDB 吗?您可能希望在 PDB 而不是 CDB 中完成几乎所有工作。(或者使用“传统”架构重新安装并避免所有这些不必要的多租户复杂性。)