Oracle中的权限管理 说明:Oracle中权限分为系统权限和对象权限 1.Oracle中有3个默认的用户 1.sys用户 change_on_install DBA用户 (登录是必须加 as sysdba) 2.system用户 manager 管理员用户 3.scott用户 tiger 普通用户 4.创建新的用户 create user myUser identified by myPwd; 2.Oracle中3个重要的系统权限 1.Oracle连接数据库权限 新创建的用户(myUser)是不能连接数据库的,需要管理员给他赋予连接数据库的权限 grant create session to myUser; 授权成功以后就可以连接数据库了。 2.Oracle中对表的权限 grant create table to myUser;(只能给自己创建表,当给自己创建表以后,就相当于对自己的表拥有修改和删除的权限) grant create any table to myUser;(可以给任何人创建表) grant alter any table to myUser; grant drop any table to myUser; 没有alter table 和 drop table 权限。 授权成功以后就可以创建表。 此时,当前用户就可以拥有自己的表,然后他可以对自己的表拥有增删改查权限,不用再授权。 3.Oracle中不受上限的表空间使用权限 grant unlimited tablespace; 4.撤销各种权限 revoke create session from myUser; revoke create table from myUser; revoke create any table from myUser; revoke alter any table from myUser; revoke drop any table from myUser; revoke unlimited tablespace from myUser; 5.将系统权限授予所有人 grant create session to public; grant create table to public; grant create any table to public; grant drop any table to public; grant alter any table to public; grant unlimited tablespace to public; 6.查看当前用户拥有哪些系统权限 select * from user_sys_privs; 从视图中查看用户的系统权限。 3.Oracle中对象权限 1.授予对象权限 grant select on myTable to otherUser; grant select any table to otherUser; grant update on myTable to otherUser; grant update any table to otherUser; grant insert on myTable to otherUser; grant insert any table to otherUser; grant delete on myTable to otherUser; grant delete any table to otherUser; grant all on myTable to otherUser; grant all on myTable to public; 2.撤销对象权限 revoke select on myTable from otherUser; revoke select any table from otherUser; revoke update on myTable form otherUser; revoke update any table from otherUser; revoke insert on myTable form otherUser; revoke insert any table from otherUser; revoke delete on myTable fomr otherUser; revoke delete any table from otherUser; revoke all on myTable from otherUser; revoke all on myTable from public; 3.对象权限可以控制到列(除了查询和删除) grant update(colName) on myTable to otherUser; grant insert(colName) on myTable to otherUser; 当然也可以收回列的控制权限。 4.查看当前用户拥有哪些对象权限 select * from user_tab_privs; 从视图中查看用户的对象权限 select * from user_col_privs; 从视图中查看用户对列的控制权限 4.ddl\dml\dcl介绍 1.ddl.数据定义语言 例如:创建表(create),修改表(alter),删除表等语句(drop)。 2.dml.数据操作语言 例如:插入数据(insert),删除数据(delete,truncate),更新数据(update),查询数据语句(select)。 3.dcl.数据控制语言 例如:授权(grant)和撤销权限(revoke)等语句。 注意:只有dml需要commit,当然查询语句不需要commit。 5.Oracle中权限的传递 1.对于系统权限 不允许权限传递 grant create session to myUser; 允许权限传递 grant create session to myUser with admin option; 2.对于对象权限 不允许权限传递 grant select on myTable to otherUser; 允许权限传递 grant select on myTable to otherUser with grant option; 6.Oracle中的角色管理 1.创建角色 create role myRole; 2.给角色授权 grant create session to myRole; grant create table to myRole; 3.给用户指定角色 grant myRole to myUser; 4.删除角色 drop role myRole; 5.有些权限很高,不能通过角色分配给用户,只能直接分配给用户 比如:unlimited tablespace grant unlimited tablespace to myUser; 7.Oracle中的3中验证机制 1.操作系统验证 SYSDBA,SYSOPER两个角色的用户(比如sys用户)都是用操作系统和密码文件验证 用操作系统验证时,可以不需要用户名和密码 2.密码文件验证 当操作系统用户不存在时,就会进行密码文件验证,就需要正确的用户名密码。 3.数据库验证 一般数据库用户都是数据库验证,因为是在数据库启动以后才能普通用户登录 4.数据库的启动顺序 1.启动监听 lsnrctl start; 2.进行sys用户登录 sqlplus sys/password as sysdba; conn sys/password as sysdba; 当监听器监听到是as sysdba 时候,就进行操作系统和密码文件验证。 3.启动数据库(启动实例) startup; 4.普通用户登录 conn scott/tiger; 当数据库启动以后,用户登录的时候就可以使用数据库验证。
Oracle权限管理
最新推荐文章于 2021-04-03 10:34:18 发布