版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、权限控制,第二章,第2页,共39页,目标,了解数据库权限 了解数据库用户和角色 使用同意词 权限控制实际应用 使用数据库链接,第3页,共39页,数据库权限,数据库权限,第4页,共39页,系统权限(一),系统权限很多,有80多个,DBA拥有最高级别的系统权限。 典型的DBA权限有: CREATE USER 创建数据库用户 DROP USER 删除数据库用户 CREATE TABLESPACE 创建表空间 BACKUP ANY TABLE 备份任何表 GRANT 将权限授给用户 创建数据库用户语法: CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPA
2、CE 表空间名 TEMPORARY TABLESPACE 临时表空间名,第5页,共39页,系统权限(二),例: CREATE USER RESCNC IDENTIFIED BY RESCNC DEFAULT TABLESPACE BASE_DATA TEMPORARY TABLESPACE TEMP; 用户建立后我们就可以给他授权,一般的数据库用户有下列系统权限: CREATE SESSION 连接到数据库 CREATE TABLE 建表 CREATE SEQUENCE 建序列 CREATE VIEW 建视图 CREATE PROCEDURE 建存储过程 CREATE TRIGGER 建触发器
3、,第6页,共39页,系统权限(三),授系统权限语法: GRANT 系统权限1,系统权限2. TO 用户(角色)1,用户(角色)2. 例: GRANT CREATE SESSION,CREATE TABLE TO RESCNC; 回收系统权限语法: REVOKE 系统权限1,系统权限2. FROM 用户(角色)1,用户(角色)2. 例: REVOKE CREATE SESSION,CREATE TABLE FROM RESCNC;,第7页,共39页,对象权限(一),第8页,共39页,对象权限(二),授予对象权限语法: GRANT 权限1,权限2.|ALL(列1,列2.) ON 对象名 TO 用户
4、(角色)1,用户(角色)2.|PUBLIC WITH GRANT OPTION 说明: ALL 指此对象的所有权限 列1,列2. 只对表或视图有效,指被授权的用户只能对这几个列拥有此权限 PUBLIC 指把此对象授予所有的用户 WITH GRANT OPTION 指被授权的用户和角色同样可以吧此权限授予其他用户和角色。,第9页,共39页,对象权限(三),例: GRANT SELECT ON DEPT_REC TO RESCNC; 将部门表的SELECT权限给RESCNC。 GRANT UPDATE(EMP_NAME, EMAIL) ON EMP_REC TO RESCNC; 将职员表上EMP_
5、NAME, EMAIL字段的UPDATE权限给RESCNC。 GRANT SELECT ON DEPT_REC TO RESCNC WITH GRANT OPTION; 将部门表的SELECT权限给RESCNC,且允许RESCNC将此权限授予其他人。,第10页,共39页,对象权限(四),回收对象权限语法: REVOKE 权限1,权限2.|ALL ON 对象名 FROM 用户(角色)1,用户(角色)2.|PUBLIC 例: REVOKE SELECT ON DEPT_REC FROM RESCNC;,第11页,共39页,用户和角色,用户和角色,第12页,共39页,简介,用户是数据库的使用者。角色
6、是一组权限的集合,使用角色可以使权限的管理变的容易。,第13页,共39页,预定义用户/角色,在数据库安装完成后,系统会自动建立一些用户和角色: 主要用户有: SYS和SYSTEM,分别拥有SYSDBA和DBA权限。 常用角色有: CONNECT 连接数据库并能建立一些数据库对象 RESOURCE 建立数据库对象对表空间有完全使用权限 DBA 数据库管理员,对数据库有完全权限 SYSDBA 超级数据库管理员,拥有DBA的所有权限并可以创建、启动、关闭、删除数据库 我们在开发时一般给对象拥有者授予CONNECT、RESOURCE权限。,第14页,共39页,建立角色,建立角色语法: CREATE R
7、OLE 角色名 例: CREATE ROLE DEVELOP; GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW TO DEVELOP; GRANT DEVELOP TO RESCNC,STDU;,第15页,共39页,修改用户密码,语法: ALTER USER 用户名 IDENTIFIED BY 密码; 例: ALTER USER STDU IDENTIFIED BY ORACLE; 说明: 用户可以更改自己的密码,DBA可以更改任何用户的密码。,第16页,共39页,查看权限,我们可以通过工具或数据字典来查看用户和角色的权限,常用的权限数据字典有: R
8、OLE_SYS_PRIVS 角色所拥有的系统权限 ROLE_TAB_PRIVS 角色所拥有的对象权限 USER_ROLE_PRIVS 用户所拥有的角色权限 USER_TAB_PRIVS_MADE 用户所拥有的对象的授权情况 USER_TAB_PRIVS_RECD 用户所拥有的对象权限 USER_COL_PRIVS_MADE 用户所拥有的对象的列的授权情况 USER_COL_PRIVS_RECD 用户所拥有的对象的列的权限,第17页,共39页,同义词,同义词,第18页,共39页,使用同义词,同义词是一个代称,通常用来简化不同用户间的对象访问,使其他用户的对象就象自己的对象一样使用。 建立同义词语
9、法: CREATE PUBLIC SYNONYM 同意词名 FOR 对象名 PUBLIC 指所有的用户都可以使用这个同义词,没有则只有自己可见,一般都使用此选项。 例: CREATE PUBLIC SYNONYM DEPT_REC FOR STDU.DEPT_REC; 这样其他用户就可以通过DEPT_REC来访问STDU.DEPT_REC了。 删除同义词语法: DROP PUBLIC SYNONYM 同意词名,第19页,共39页,权限控制实际应用,ORACLE提供的权限功能比较多,但在实际应用当中,我们很少能使用到这么多功能。 我们下面就开发环境及软件运行环境讲一下典型的权限控制。,第20页,
10、共39页,开发环境(一),权限要求: 在正规的开发队伍中,一般有三种角色:设计人员、DBA、开发人员 我们对权限控制的要求是:所有表结构的更新必须由开发或设计人员提出申请,通过后交给DBA统一更新。 开发、设计人员有对表的DELETE、INSERT、SELECT、UPDATE权限,但不能修改库表结构和建索引。 开发人员可以根据需要建立视图、序列、包、存储过程、函数、触发器,建立后将脚本交给DBA审核后统一发布,以免造成重复开发。 思路: 建立一个数据库用户ZXT10RS作为数据库对象的拥有者,授予CONNECT、RESOURCE、CREATE PUBLIC SYNONYM权限,用此用户建立数据
11、库对象,只有DBA知道密码。,第21页,共39页,开发环境(二),建立用户RESMASTER作为数据库对象的使用者,授予CREATE SESSION和建立视图、序列、包、存储过程、函数、触发器权限。 为ZXT10RS用户下的数据库对象建立同义词,并将相关权限授予RESMASTER,使RESMASTER象使用自己的对象一样。 实现方法: 前面建用户,授予系统权限部分比较简单,这里不再讲解,我们主要讲一下如何生成建同义词和授权脚本。 使用ZXT10RS用户登陆,执行如下脚本: -1.表 -建立同意词 SELECT CREATE PUBLIC SYNONYM |TABLE_NAME| FOR ZXT
12、10RS.|TABLE_NAME|; FROM USER_TABLES;,第22页,共39页,开发环境(三),-授权限 SELECT GRANT SELECT,INSERT,UPDATE,DELETE ON |TABLE_NAME| TO RESMASTER; FROM USER_TABLES; -2.视图 -建立同意词 SELECT CREATE PUBLIC SYNONYM |VIEW_NAME| FOR ZXT10RS.|VIEW_NAME|; FROM USER_VIEWS; -授权限 SELECT GRANT SELECT ON |VIEW_NAME| TO RESMASTER; F
13、ROM USER_VIEWS;,第23页,共39页,开发环境(四),-3.存储过程/函数/包 -建立同意词 SELECT DISTINCT CREATE PUBLIC SYNONYM |NAME| FOR ZXT10RS.|NAME|; FROM USER_SOURCE; -授权限 SELECT DISTINCT GRANT EXECUTE ON |NAME| TO RESMASTER; FROM USER_SOURCE;,第24页,共39页,开发环境(五),-4.序列 -建立同意词 SELECT CREATE PUBLIC SYNONYM |SEQUENCE_NAME| FOR ZXT10R
14、S.|SEQUENCE_NAME|; FROM USER_SEQUENCES; -授权限 SELECT GRANT SELECT ON |SEQUENCE_NAME| TO RESMASTER; FROM USER_SEQUENCES; 这样RESMASTER就可以象使用自己的对象一样使用ZXT10RS的对象,但不能对其结构进行修改。,第25页,共39页,运行环境,运行环境下,权限控制一般通过应用程序来进行。主要实现的方法有: 建立操作员表、角色表、操作员-角色关系表、操作员权限表、角色权限表,结构和数据库中的用户、角色权限差不多。不同的是,这里面的权限不是对数据库中的对象,而是对一些具体功能
15、,主要是应用程序中的菜单项。一般是将没有权限的菜单项隐藏掉。 实现方法:先将所有菜单项的Enable属性设为False。用户登陆后,根据用户名到操作员权限表中找到对应记录,将相应菜单项的Enable属性设为True,然后再关联操作员-角色关系表、角色权限表,将相应菜单项的Enable属性设为True。 我们在数据库端做的控制和前面类似,即对象都在ZXT10RS下,而应用程序都使用RESMASTER连接数据库。,第26页,共39页,数据库链接,数据库链接,第27页,共39页,建立数据库链接,数据库链接是一个类似指针的数据库对象,用来操纵其他数据库的数据。 语法: CREATE PUBLIC DA
16、TABASE LINK 数据库链接名 connect to 用户名 identified by 密码 using 网络服务名 执行此命令需要CREATE PUBLIC DATABASE LINK 系统权限。 PUBLIC 说明此数据库链接可以为数据库中的所有用户使用,否则只有自己可用。,第28页,共39页,链接应用(一),例: create public database link RESCNC_BF connect to rescnc identified by rescnc using IBMRES 如果在此数据库中执行下面的语句: SELECT * FROM EMP_RECRESCNC_
17、BF 等价于: sqlplus rescnc/rescncIBMRES SELECT * FROM EMP_REC;,第29页,共39页,链接应用(二),数据库链接的主要用途有两个: 1.数据迁移 将数据从旧系统中经过转换导入到新系统。 2.分布式数据库系统中数据的比较、传输 在一些大型应用系统中,以银行为例。在地市一级有一台数据库服务器,在下面的各个县也各有一台数据库服务器,结构完全相同。平常各县的业务操作在自己的数据库服务器上进行,在夜里再将数据同步到市里的数据库服务器。这样既保证了市里的数据库服务器有整个市的数据,有减少了市里的数据库服务器的负担。 如果没有数据库链接,我们只能使用exp
18、、imp方式将数据导到本地的一个用户下再操作,而现在我们可以直接操作。,第30页,共39页,应用案例(一),下面我们用一个具体的案例来讲解一下。 案例情况: 在北京网通的资源管理系统实施过程中,由于用户操作IP地址数据过于频繁,造成网通数据库的负担过大,客户拟将IP地址数据拆分为骨干和北分两部分,然后定期将北分的数据同步到骨干数据库。 数据库环境: 操作系统:HP UNIX,磁盘阵列存储 数据库:ORACLE 9.2.0.1 前提: 首先要保证两台数据库服务器能互相访问。 调整北分数据库相关序列的初始值,保证两边生成的ID不会重复。 保证两边的库表结构完全一致。,第31页,共39页,应用案例(
19、二),建立网络服务名: 在北分的数据库服务器上建立一个NET服务名,指向骨干数据库: 方法: 找到tnsnames.ora文件(一般在$ORACLE_HOME/product/9.2.0/network/admin目录下),在后面加上: GGRES = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.40.91.237)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = res) ) ),第32页,共39页,应用案例(三),则建立一个叫GGRES的服务名,指向骨
20、干数据库。 这时候可以使用命令: $sqlplus 用户名/口令 GGRES 如果能连接成功并确认连接的是骨干数据库,则成功。 建立DB LINK 方法: 用资源管理用户登陆数据库 sqlplus resbf/resbf SQLcreate database link ggres connect to rescnc identified by rescnc using GGRES;,第33页,共39页,应用案例(四),测试方法: SQL select count(*) from IPADDR_AREAggres; 如果能连接成功并确认连接的是骨干数据库,则成功。这样我们就可以在北分数据库直接访
21、问骨干数据库。 将骨干中北分数据分离到北分数据库 我们编写了一个脚本转移数据.sql,下面为部分脚本: -基础数据部分 INSERT INTO IPADDR_KIND SELECT * FROM IPADDR_KINDGGRES; COMMIT; .,第34页,共39页,应用案例(五),-其他数据部分 INSERT INTO IPADDR_NODE SELECT * FROM IPADDR_NODEGGRES NODE WHERE EXISTS(SELECT MAP.NODE_ID FROM IPADDR_AREA_NODE_MAPGGRES MAP,IPADDR_AREAGGRES AREA
22、 WHERE (AREA.AREA_ID=000121080000000000000360 OR AREA.PARENT_AREA_ID=000121080000000000000360) AND AREA.AREA_ID=MAP.AREA_ID AND MAP.NODE_ID=NODE.NODE_ID); INSERT INTO IPADDR_AREA SELECT * FROM IPADDR_AREAGGRES WHERE AREA_ID=000121080000000000000360 OR PARENT_AREA_ID=000121080000000000000360; COMMIT; .,第35页,共39页,应用案例(六),编写同步脚本 对于基础数据部分,由于变动比较少,我们采用手工同步方式。其余的数据采用先删除再插入的同步方式。 编写脚本sync_data.sql,下为部分脚本: -记录执行情况 Spool /home/oracle/sync_log.txt -删除骨干数据库中的北分数据 DELETE FROM IPADDR_ALLOT_HISGGRES WHERE AREA_ID=000121080000000000000360; COMMIT;,第36页,共39页,应用案例(七),DELETE FROM IP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年计算机二级考试通关试题
- 2026年国家能源笔试经验分享文档
- 2026年销售副总监岗位笔试题集
- 2026年特种设备安全操作题库
- 2026年一级结构工程师备考冲刺题集
- 2026年食品安全知识竞赛活动流程
- 2026年小学生常识知识题
- 2026年职业生涯能力测评报告
- 2026年数据安全法律法规题
- 2026年湖南省选调生安全生产专项笔试模拟题
- 2025江苏省连云港市属国有企业选聘生招录32人笔试历年参考题库附带答案详解
- 2025年交通运输概论考试试题及答案
- 2026春青岛版三年级科学下册(全册)各单元知识点复习要点梳理
- 青岛科技大学2026年综合评价招生《笔试 + 面试》模拟试题及参考答案
- GD弹性混凝土无缝连接技术-拼缝180802
- GB/T 17824.3-2026规模猪场环境参数及环境管理技术规范
- 2025浙江金华市武义供销农贸城招聘6人笔试历年常考点试题专练附带答案详解
- GB/T 15000.4-2026标准样品工作导则第4部分:证书、标签和附带文件的内容
- 医疗设备维修保养及应急预案
- 分子诊断设备技师精准操作能力标准
- 工厂搬迁技术方案
评论
0/150
提交评论