首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建角色而不授予该角色

创建角色而不授予该角色
EN

Stack Overflow用户
提问于 2012-10-04 15:47:20
回答 2查看 789关注 0票数 2

我想创建一个连接为系统的角色。但是,因为我有很多包含许多角色的模式,并且所有这些模式都将以这种方式创建,所以我不希望将创建的角色授予SYSTEM (否则它最终将超过148个角色的限制)。

=>是否可以禁用创建者上的自动授权?

注意:目前我使用的是Oracle 9i,但它很快就会升级到11g

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-04 15:53:09

我的答案分为两部分:

Oracle中的

  1. 角色有点像密钥环上的密钥:仅仅因为它们在密钥环上并不意味着您总是在使用它们。Oracle有默认角色的概念:这些角色在创建会话时自动激活。如果用户希望,可以稍后启用其他角色。

148个角色限制适用于活动角色,例如,请参阅oracle 10g的文档链接:http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6012.htm#sthref7227

要禁用默认角色,请使用ALTER USER ...DEFAULT ROLE ...,请参见http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4003.htm#sthref5717

  • Don't在作为系统连接时创建任何对象,甚至是角色。相反,您应该使用普通用户来创建角色,并向其中添加适合于该用户的模式对象的对象。您需要将CREATE ROLE系统权限授予那些需要拥有对象并为其提供角色的用户,但这都是Oracle安全模型的一部分。
票数 2
EN

Stack Overflow用户

发布于 2012-10-04 15:51:19

一次可为单个用户启用的用户定义角色的最大数量为148。

你可以随意创建多个角色--只是不要一下子把它们都启用。

当您创建角色(用户角色除外)时,系统会隐式授予您该角色并将其添加为默认角色。如果您有多个MAX_ENABLED_ROLES,则登录时会收到错误。您可以通过将用户的默认角色更改为小于MAX_ENABLED_ROLES来避免此错误。因此,您应该在创建用户角色之前更改SYS和SYSTEM的默认角色设置。

http://docs.oracle.com/cd/B10500_01/server.920/a96521/privs.htm#15539

例如:

代码语言:javascript
运行
复制
ALTER USER SYSTEM DEFAULT ROLE DBA
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12722548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档