博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[20151110]oracle可以启用多少role.txt
阅读量:6250 次
发布时间:2019-06-22

本文共 1706 字,大约阅读时间需要 5 分钟。

[20151110]oracle可以启用多少role.txt

--链接http://blog.itpub.net/4227/viewspace-676078/

Oracle在启用用户的角色时,最多允许启用148个。

其实这个限制比较奇怪,因为148与2的幂相差较大,不知道Oracle出于什么原因确定的这个值:

BEGIN

FOR I IN 1..148 LOOP
EXECUTE IMMEDIATE 'CREATE ROLE R_' || I;
END LOOP;
END;
/

CREATE ROLE R_149;

SCOTT@test01p> SET ROLE ALL;

SET ROLE ALL
*
ERROR at line 1:
ORA-28031: maximum of 148 enabled roles exceeded

SCOTT@test01p> SET ROLE ALL;

SET ROLE ALL
*
ERROR at line 1:
ORA-28031: maximum of 148 enabled roles exceeded

--我自己查询参数参数:

SYS@book> @ &r/ver1

PORT_STRING                    VERSION        BANNER

------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@book> show parameter role

NAME               TYPE     VALUE
------------------ -------- ------
max_enabled_roles  integer  150
os_roles           boolean  FALSE
remote_os_roles    boolean  FALSE

SYS@book> alter system set max_enabled_roles=151 scope=spfile;

alter system set max_enabled_roles=151 scope=spfile
*
ERROR at line 1:
ORA-00068: invalid value 151 for parameter max_enabled_roles, must be between 1 and 148

--无法更改这个数值更大. 不过还是觉得很奇怪150 与 148 相差2. 难道缺省有2个是默认的.

--最容易想到的public,参看dba_roles的视图定义:

CREATE OR REPLACE FORCE VIEW SYS.DBA_ROLES

(
   ROLE
  ,PASSWORD_REQUIRED
  ,AUTHENTICATION_TYPE
)
AS
   SELECT name
         ,DECODE
          (
             password
            ,NULL, 'NO'
            ,'EXTERNAL', 'EXTERNAL'
            ,'GLOBAL', 'GLOBAL'
            ,'YES'
          )
         ,DECODE
          (
             password
            ,NULL, 'NONE'
            ,'EXTERNAL', 'EXTERNAL'
            ,'GLOBAL', 'GLOBAL'
            ,'APPLICATION', 'APPLICATION'
            ,'PASSWORD'
          )
     FROM user$
    WHERE type# = 0 AND name NOT IN ('PUBLIC', '_NEXT_USER');

--可以发现有2个排除在外.这样默认角色PUBLIC好理解,后面_NEXT_USER一般增加用户后user#会加1(不是角色).

--实在不知道另外1个是什么?

转载地址:http://hafsa.baihongyu.com/

你可能感兴趣的文章
使用erlang 建立一个自动化的灌溉系统(1)准备工作
查看>>
python 调用aiohttp
查看>>
LPAD、RPAD补位函数
查看>>
mysql 案例~ mysql故障恢复
查看>>
UESTC 1307 windy数(数位DP)
查看>>
关于JS面向对象、设计模式、以及继承的问题总结
查看>>
Spring Boot中使用MyBatis注解配置详解
查看>>
MatLab实现FFT与功率谱
查看>>
答《漫话ID》中的疑问:UniqueID和ClientID的来源
查看>>
STL容器--学习笔记
查看>>
使用Word 2010群发邮件
查看>>
【转】Asp.net控件开发学习笔记整理篇 - 服务器控件生命周期
查看>>
Linux下的shell编程(一)BY 四喜三顺
查看>>
hadoop之 心跳时间与冗余快清除
查看>>
执行计划-数据访问方式(全表扫描与4种索引的方式)
查看>>
Shared_ptr循环引用解决(weak_ptr的作用)
查看>>
P1578 奶牛浴场
查看>>
sqlite 数据库错误 The database disk image is malformed database disk image
查看>>
解决MySQL导入中文乱码
查看>>
11、多线程(三) -- 线程池
查看>>