是否可以使用系统对象名(use_sys_object_name)
📄字数 555
👁️阅读量 加载中...
引入版本
v12.6.8
功能描述
用于控制系统是否允许用户在非系统库下创建与系统对象同名的对象。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | BOOLEAN |
| 默认值 | FALSE |
| 取值范围 | TRUE,FALSE |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- 该参数控制系统是否允许用户在非系统库下创建与系统对象同名的对象。
注意
- 开启 use_sys_object_name,会影响审计功能(审计内容中的库 ID 信息可能不准确)。
示例
sql
-- 在线设置 use_sys_object_name
SQL> SET use_sys_object_name TO FALSE;
-- 在线查看 use_sys_object_name
SQL> SHOW use_sys_object_name
/*
* 场景一:
* 1. use_sys_object_name = false;
* 2. SYSDBA 身份;
*/
SQL> CREATE DATABASE db;
SQL> USE db;
SQL> CREATE TABLE sys_tables(c1 INTEGER); /* 上报异常 E9016 同名Table对象SYS_TABLES已存在 */
/*
* 场景一:
* 1. use_sys_object_name = true;
* 2. SYSDBA 身份;
*/
SQL> CREATE DATABASE db;
SQL> USE db;
SQL> CREATE TABLE sys_tables(c1 INTEGER); /* 执行成功 */