我不是 DBA(类似的东西 应该由 DBA 运行),但是:特权用户应该授予您权限(正如您所说,您将自己运行它) ALTER DATABASE 特权:
scott 只是一个可怜的用户:
SQL> show user
USER is "SCOTT"
SQL>
SQL> alter database add supplemental log data;
alter database add supplemental log data
*
ERROR at line 1:
ORA-01031: insufficient privileges
特权用户是SYS(如果您没有其他用户):
SQL> connect sys as sysdba
Enter password:
Connected.
SQL> grant alter database to scott;
Grant succeeded.
返回scott,重新运行语句:
SQL> connect scott/tiger
Connected.
SQL> alter database add supplemental log data;
Database altered.
SQL>
这是最小值。您也可以将 DBA 角色授予scott,效果相同(关于这句话,但是 - DBA 更强大):
为了说明,先撤销权限:
SQL> connect sys as sysdba
Enter password:
Connected.
SQL> revoke alter database from scott;
Revoke succeeded.
它仍然有效吗?当然不是:
SQL> connect scott/tiger
Connected.
SQL> alter database add supplemental log data;
alter database add supplemental log data
*
ERROR at line 1:
ORA-01031: insufficient privileges
授予 DBA 角色:
SQL> connect sys as sysdba
Enter password:
Connected.
SQL> grant dba to scott;
Grant succeeded.
现在可以用了吗?是的,确实如此:
SQL> connect scott/tiger
Connected.
SQL> alter database add supplemental log data;
Database altered.
SQL>