alter system set参数 报权限不足 ORA-01031 DB Vault

When DV Is Enabled SYS User Is Not Able To Change Certain Parameters - ORA-01031 (Doc ID 758327.1)SYMPTOMS

In Database Vault enabled databases, SYS user is not able to change certain  parameters using and ALTER SYSTEM command. The commands are failing :

    SQL> alter system set max_dump_file_size=10000 scope=spfile;
    alter system set max_dump_file_size=10000 scope=spfile
    *
    ERROR at line 1:
    ORA-01031: insufficient privileges

CAUSE

Database Vault prohibits the dynamic change of certain parameters. The dynamic change of the following parameters is blocked intentionally:

dump datafile
DB_CREATE_FILE_DEST
DB_CREATE_ONLINE_LOG_DEST_1
db_recovery_file_dest
LOG_ARCHIVE_DEST_%
log_archive_dest_state_%
background_dump_dest
core_dump_dest
user_dump_dest
audit_file_dest
db_recovery_file_dest
DB_RECOVERY_FILE_DEST_SIZE
standby_archive_dest
recyclebin=on
control_files
optimizer_secure_view_merging = true
utl_file_dir
plsql_debug=true
audit_sys_operations = false
audit_trail
remote_os_roles
os_roles
job_queue_processes
sql92_security

SOLUTION

Workaround I:

Disable the  ALTER SYSTEM command rule.

Login to the Database Vault Console -> select command rule -> select ALTER SYSTEM command -> Edit and set it disable.

If console is not accessible the following code block can be used to disable the command rule


############### Disable the command rule from the command line ###########

As DV Owner:
=============
select * from DVSYS.DBA_DV_COMMAND_RULE;
select * from dvsys.DBA_DV_POLICY;

Save output of above queries

Disable the Policies -

exec dbms_macadm.update_policy_state('Oracle System Protection Controls',dbms_macadm.g_partial);

BEGIN
DBMS_MACADM.UPDATE_COMMAND_RULE(
command => 'ALTER SYSTEM',
rule_set_name => 'Allow Fine Grained Control for Alter System',
object_owner => '%',
object_name => '%',
enabled => 'N',
clause_name => 'SET',
parameter_name => '%',
event_name => '%',
component_name => '%',
scope => DBMS_MACUTL.G_SCOPE_LOCAL);
END;
/

As DBA:
===========

SQL> alter system set audit_file_dest='/oracle19c/app/audit/misdb1' scope=spfile;

Now, enable the policies again.

As DV Owner:
=============

BEGIN
DBMS_MACADM.UPDATE_COMMAND_RULE(
command => 'ALTER SYSTEM',
rule_set_name => 'Allow Fine Grained Control for Alter System',
object_owner => '%',
object_name => '%',
enabled => 'y',
clause_name => 'SET',
parameter_name => '%',
event_name => '%',
component_name => '%',
scope => DBMS_MACUTL.G_SCOPE_LOCAL);
END;
/

exec dbms_macadm.update_policy_state('Oracle System Protection Controls',DBMS_MACADM.G_ENABLED );

Validate using below queries -

select * from DVSYS.DBA_DV_COMMAND_RULE;
select * from dvsys.DBA_DV_POLICY;

Workaround II:

Manually edit init.ora and change the parameters. And restart the database with this init.ora file with the command STARTUP PFILE=<path/name of the pfile>

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORA-01031权限不足错误是由于当前用户缺少执行特定操作的权限导致的。解决这个问题的方法如下: 1. 检查当前用户的权限:使用管理员账户登录到Oracle数据库,并确认当前用户是否具有执行需要的操作的权限。可以使用以下命令来检查用户的权限: ``` SELECT * FROM USER_SYS_PRIVS; SELECT * FROM USER_ROLE_PRIVS; SELECT * FROM USER_TAB_PRIVS; ``` 确保当前用户具有执行所需操作的必要权限。 2. 授予缺少的权限:如果当前用户缺少执行特定操作的权限,可以使用GRANT语句来授予相应的权限。例如,如果用户缺少创建表的权限,可以使用以下命令来授予该权限: ``` GRANT CREATE TABLE TO 用户名; ``` 根据具体情况授予相应的权限。 3. 使用角色:您还可以将用户添加到具有所需权限的角色中。这样,用户将继承角色的权限。例如,如果角色"DBA"具有所需的权限,可以使用以下命令将用户添加到该角色中: ``` ALTER USER 用户名 DEFAULT ROLE ALL; ``` 注意:使用角色时需要谨慎,确保只赋予必要的权限,并避免给予过多的权限。 4. 重新连接数据库:在更改用户权限或添加到角色后,您需要断开当前会话并重新连接数据库,以使更改生效。 通过以上方法,您应该能够解决ORA-01031权限不足错误。如果问题仍然存在,请检查其他可能的权限限制或联系数据库管理员进行进一步的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值