system用户登录无法使用syssystem用户登录Oracle数据库(Oracle不能用sys)

/system用户登录无法使用sys/system用户登录Oracle数据库

在Oracle数据库中,/system用户登录成为了一个普遍的问题。往往,管理员会发现在使用sys/system用户进行登录时,会遇到无法登录的问题。这是因为Oracle数据库默认情况下是不允许使用/sys和/system账号登录的。在登录Oracle数据库时,需要使用完全限定名称(Fully Qualified Name)的方式进行登录。

解决方法一:

1.创建一个新用户(例如:mydba),并授予sysdba权限。

2.使用此新用户进行登录。

如果您需要在Oracle数据库中创建用户,可以使用以下代码:

CREATE USER mydba IDENTIFIED BY password;

GRANT CONNECT,RESOURCE,DBA TO mydba;

如果您需要为新用户授予sysdba权限,使用以下代码:

GRANT SYSDBA TO mydba;

解决方法二:

在不创建新用户的情况下,可以使用ORA_SYS_RESV_USER$和ORA_SYS_DBUR$视图来解决。

ORA_SYS_RESV_USER$ 视图列出 Oracle 数据库系统级别的保留用户。

ORA_SYS_DBUR$ 视图在 Oracle 数据库实例中提供了了解授权用户帐户及其关联角色、系统特权和已授予的操作的信息。

在Oracle数据库中使用以下代码来查看ORA_SYS_RESV_USER$和ORA_SYS_DBUR$视图:

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE IN (SELECT USERNAME FROM DBA_USERS WHERE USERNAME=’SYS’ OR USERNAME=’SYSTEM’);

SELECT * FROM ORA_SYS_RESV_USER$;

SELECT * FROM ORA_SYS_DBUR$;

解决方法三:

使用PDB(Pluggable Database)登录Oracle数据库。

PDB是Oracle 12c中一个新的概念,它允许多个独立的数据库实例在同一个物理服务器上共存。PDB允许多个PL/SQL命名空间和多个角色映射到一个集中化的服务器,并且保护每个租户的资源不被其他租户浪费。

在Oracle数据库中,使用以下代码来登录PDB:

CONN user_name/password@connection_string/PDB_name;

例如:

CONN mydba/password@localhost:1521/DB12C/PDBORCL;

总结:

在Oracle数据库中,/sys和/system用户登录是一个常见的问题。通过创建新用户,并授予sysdba权限,或者使用ORA_SYS_RESV_USER$和ORA_SYS_DBUR$视图来解决这个问题。同时,可以使用PDB来打破物理服务器上的数据库与租户之间的耦合,提高Oracle数据库的可伸缩性和资源利用率。


数据运维技术 » system用户登录无法使用syssystem用户登录Oracle数据库(Oracle不能用sys)