扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1.创建新的用户;
创新互联公司网站建设服务商,为中小企业提供成都网站设计、成都做网站服务,网站设计,成都网站托管等一站式综合服务型公司,专业打造企业形象网站,让您在众多竞争对手中脱颖而出创新互联公司。
2.对已有用户进行相关属性的修改操作。
部分属性的修改涉及到生产环境的要申请停业,避免业务交易无法正常进行:
1.创建新用户对原有的业务无影响,风险级别低,但要考虑新用户导入的数据量,避免数据表空间爆满,TEMP空间与归档空间不足。
2.修改用户密码:
1)会导致继续使用之前密码连接数据库的应用出现连接故障,如果该应用有重连机制,超过尝试次数会导致用户被锁,风险级别高。
2)会导致其他库上未进行修改的 DBLINK,无法远程连接到本数据库,风险级别 高。
3.修改用户默认表空间,不影响现有的业务,风险级别低。
4.修改用户默认临时表空间,不影响现有的业务,风险级别低。
5.修改用户 profile,会影响用户会话的连接配额,如连接会话数、密码过期设定、 空闲时间、连接时间等,风险级别中。
6.修改账户状态,会影响会话连接数据库,风险级别高。
7.修改密码口令过期,会影响会话连接数据库,风险级别高。
8.修改用户表空间配额,会影响用户在表空间中的使用额度,风险级别中。
9.修改用户权限,会影响会话的执行权限,风险级别中。
不管是生产环境还是测试环境,备份永远是第一步操作,在评估时也要考虑是否有回退的可能,不要拿开弓没有回头箭当挡箭牌:
1.修改密码时,提前保存密文密码,同时找出到修改库的 DBLINK 也要修改。
2.修改用户属性时,提前保存原来的用户属性信息。
3.同研发确认用户需求,确保不影响业务。
4.安排变更窗口,停止应用。
1.创建新用户
2.用户属性修改
3.修改密码 修改用户密码:
4.修改远程库 DBLINK 的用户密码:
5.修改默认表空间及临时表空间
6.修改 profile
7.修改账户状态(锁定,解锁)
8.修改口令过期
9.修改表空间配额
10.权限,角色授予与回收
1.重新登陆进行账户验证新密码及账户锁定状态是否符合预期。
2.在远程库进行 DBLINK 连接验证是否正常。
3.检查用户账号状态是否正常
4.检查具体的权限是否符合要求
5.应用启动后,日志是否正常,最后观察业务是否正常进行
1.删除新用户
2.修改回用户旧密码:
3.修改远程库 DBLINK 的用户密码:
4.修改默认表空间及临时表空间
5.修改 profile配置
6.修改账户状态(锁定,解锁)
7.修改表空间配额
8.权限,角色授予与回收
1.用户旧密码登录验证是否正常
2.DBLINK连接是否正常
3.查看用户的默认表空间与临时表空间是否与最初状态一致
4.profile配置是否与最初状态一致
5.账户的状态是否与最初状态一致
6.表空间配置是否与最初状态一致
7.权限等是否与最初状态一致。
备注:回退方案的验证最重要的就是第一个步骤的备份与信息记录。这样才能验证回退方案是否达到预期。
你这要求不是简单的在oracle上就能实现的,而是要设计一个针对你系统的整个的权限系统。控制每一个菜单的操作权限都能在这个系统里进行配置,然后才能创建类似的角色,而且这个角色实际上是一种虚拟的角色,和oracle的角色应该没什么关系,应该说是类似oracle的权限系统的克隆。
例如:一个公司里有董事长,总经理
level1级别,部门经理
level2级别,小组长
level3级别,普通员工
level4级别。在你建立了所有菜单的操作权限的配置表后,就可以针对这个人的具体级别配置不同菜单的操作权限了。你想要建立的角色在这里就像每一个级别的通用模板一样,模板具备通用功能,细化的操作权限可以在这个模板的基础上再修改,也可以直接修改角色的权限。
ORACLE数据库中的权限和角色
Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种操作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。
1 权限
Oracle数据库有两种途径获得权限,它们分别为:
① DBA直接向用户授予权限。
② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。
使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。
Oracle中的权限可以分为两类:
•系统权限
•对象权限
1.1 系统权限
系统权限是在数据库中执行某种操作,或者针对某一类的对象执行某种操作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。
系统权限的权利很大,通常情况下:
① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。
② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。
③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库
④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。
1.2对象权限
对象权限是针对某个特定的模式对象执行操作的权利。只能针对模式对象来设置和管理对象权限。
对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。
但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的.系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。
用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。
2 角色
2.1角色的概念
角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行操作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。
2.2角色的优点
通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:
•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权操作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。
•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。
•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等操作。
下面以Oracle9i为例,给出具体的实现用户授权:
(1)设定各种角色,及其权限
CREATE ROLE checkerrole DENTIFIEDBYxm361001;
CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;
GRANT SELECT,UPDATE ON
account.paytable TO checkerrole;
GRANT CONNECT TO defaultrole;
(2)创建用户
CREATE USER xiaoli IDENTIFIEDBY xiaoli;
(3)授权
GRANT checkerrole TO xiaoli;
GRANT defaultrole TO xiaoli;
(4)设定用户缺省的角色
ALTER USER xiaoli DEFAULTROLE defaultrole;
(5)注册过程
CONNECT xiaoli/xiaoli@oracle
此时用户只有其缺省角色的权限。
(6)激活角色
SET ROLE checkerrole IDENTIFIEDBY xm361001;
----操作成功后,xiaoli拥有checkerrole的权限。
----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全
;
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流