240 likes | 387 Views
第十章 管理用户权限及角色. 10.1 系统权限的授予与撤消. ORACLE 把用户分为三级。 Connect :可以读写被授权的对象,但不能建立对象。 resource :可以读写数据,而且可以创建对象 ( 建表,建视图等 ) 。 DBA :可以拥有访问系统中任可对象的权力. 10.1 系统权限的授予与撤消. 对于系统权限而言: 开发者具有创建和删除数据对象的权限:
E N D
第十章 管理用户权限及角色 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.1 系统权限的授予与撤消 • ORACLE 把用户分为三级。 • Connect:可以读写被授权的对象,但不能建立对象。 • resource :可以读写数据,而且可以创建对象(建表,建视图等)。 • DBA:可以拥有访问系统中任可对象的权力. 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.1 系统权限的授予与撤消 对于系统权限而言: • 开发者具有创建和删除数据对象的权限: • CLUSTER,PROCEDURE , ABLE ,VIEW,TRIGER,FUNCTION, PUBLIC SYNONYM ,DATABASE LINK ,PUBLIC SYNONYM,SEQUENCE ,SNAPSHOTP ,TYPE , LIBRARY • DBA具有上述数据对象的any 权限,即在其他用户对象模式下,创建上述对象和删除上述对象的权限。此外,还具有对用户和角色的管理权限。 • 此外,DBA还具有对数据库的维护权限。 • 上述权限详见教材152-154页。 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.2 对象权限的授权与撤消 • 一般情况下,我们先将对象的访问权授予某个角色,然后把角色授予用户 • 一般来说,如果系统并不复杂时常采用无角色的授权。 • 建议采用角色授权与用户授予角色的授权方式来管理系统。 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.2 对象权限的授予与撤消 GRANT system_privilege | role TO user | role | PUBLIC [WITH ADMIN OPTION] GRANT object_privilege | ALL column ON schema.object FROM user | role | PUBLIC WITH GRANT OPTION 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.2 对象权限的授予与撤消 object_privilege:对象的权限,可以是: • ALTER • DELETE • EXECUTE • INDEX • INSERT • REFERENCES • SELECT • UPDATE 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.2 对象权限的授予与撤消 • 例子: • GRANT CREATE TABLE TO gavaskar; • GRANT team_leader TO crystal; • GRANT INSERT, UPDATE ON sales TO larry WITH GRANT OPTION; • GRANT ALL TO PUBLIC; 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.2 对象权限的授予与撤消 撤销权限: REVOKE system_privilege | role FROM user | role | PUBLIC REVOKE system_privilege | role FROM user | role | PUBLIC REVOKE object_privilege | ALL ON schema.object FROM user | role | PUBLIC CASCADE CONSTRAINTS 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.1 系统权限的授予与撤消 示例: • REVOKE ALTER TABLESPACE FROM john; • REVOKE GRANT ANY ROLE FROM todd; • REVOKE manager FROM imran; • REVOKE INSERT ON sales FROM javed; • REVOKE ALL ON marketing FROM terry;. 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 用 户 特 权 无角色管理的授权示意图 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 用 户 角 色 特 权 使用角色管理的授权示意图 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 • 角色是一个数据库实体,它包括一组权限。即角色是包括一个或多个权限的集合。 • 它不被哪个用户拥有,它只能授予某些用户。 • 这些角色不要与用户名相同。 • 根据各个用户的情况(比如他们所担当的工作)来授予不同的角色。 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 对象权限列表: 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 常见的系统角色 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 • 1.CREATE ROLE语法 CREATE ROLE role [ [ NOT IDENTIFIED|IDENTIFIED] [ BY password| EXTERNALLY|GLOBALLY ]; • role 角色名 • IDENTIFIED BY password 角色口令 • IDENTIFIED BY EXETERNALLY 角色名在操作系统下验证。 • IDENTIFIED GLOBALLY 用户是ORACLE 安全域中心服务器来验证,此角色有全局用户来使用。 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 示例: • CREATE ROLE vendor IDENTIFIED GLOBALLY; • CREATE ROLE teller IDENTIFIED BY cashflow; 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 2 给角色授权 一旦角色建立完成,就可以对角色进行授权。给角色授权用GRANT语句实现。如果系统管理员具有GRANT_ANY_PRIVILEGE权限,则可以对某个角色进行授权。 • 示例: GRANT CREATE SESSION,CREATE DATABASE LINK to Manager; 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 3 授予用户权限与角色 对用户进行授权,包括给用户授予系统预定义的权限,也包括自定义的角色。用GRANT命令来实现给用户的权限与角色的授予。 • 例1.下面语句将系统权限CREATE SESSION和ACCTS_PAY角色给JWARD用户: GRANT CREATE SESSION, accts_pay TO jward; • 例2.下面语句将SELECT, INSERT和 DELETE 授给jfee, tsmith用户: GRANT SELECT, INSERT, DELETE ON emp TO jfee, tsmith; 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 • 删除角色 只要具有相应权限,就可以用DROP ROLE命令删除角色。如: DROP ROLE Manager; 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 • 角色的查询 • 1.确定角色的权限 授予用户某个角色,则角色的权限也就授予了用户,管理员需了解角色被授予那些权限,以便知道哪些角色是够用,或者应撤消哪些权限。 • ROLE_TAB_PRIVS 授予角色的对象权限 • ROLE_ROLE_PRIVS 授予另一角色的角色 • ROLE_SYS_PRIVS 授予角色的系统权限 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.3 角色与授权 • 2.确定用户所授予的权限 为了维护用户,必须知道哪写 ORACLE 帐户被授予哪些权限,这些权限可能是直接授予,也可能是通过角色授予的。 • DBA_TAB_PRIVS 包含直接授予用户帐户的对象权限 • DBA_ROLE_PRIVS 包含授予用户帐户的角色 • DBA_SYS_PRIVS 包含授予用户帐户的系统权限 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
10.4 有关的数据字典 • 与用户、角色权限有关的数据字典: • DBA_USERS 实例中有效的用户及相应信息。 • DBA_TS_QUOTAS 用户对表空间的使用限制信息。 • USER_RESOURCE_LIMITS 用户资源的使用限制信息。 • DBA_PROFILES 系统所有资源文件信息。 • RESOURCE_COST 系统每个资源的代价。 • V$SESSION 实例中会话的信息。 • V$SESSTAT 实例中会话的统计。 • V$STATNAME 实例中会话的统计代码名字。 • DBA_ROLES 实例中已经创建的角色的信息。 • ROLE_TAB_PRIVS 授予角色的对象权限。 • ROLE_ROLE_PRIVS 授予另一角色的角色。 • ROLE_SYS_PRIVS 授予角色的系统权限。 • DBA_ROLE_PRIVS 授予用户和角色的角色。 • SESSION_ROLES 用户可用的角色的信息。 辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM
辽宁工程技术大学 软件工程系 E-MAIL:YGHL2000@TOM.COM BLOG:HTTP://BLOG.CAT898.COM/MY_VIEW.HTM