SQL> select * from v$version where rownum=1;
BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
系统权限:
语法:grant privilege[,privilege....]TO<用户名>[with admin option];
创建一个用户:
CREATE USER 用户名称IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名
TEMPORARY TABLESPACE temp; ==>create user diy identified by diy default tablespace users quota 10m on users quota;这里延伸
下,我们创建用户时,可以指定用户可以使用的表空间的大小,这里指定是10m
当然我们也可以:create user wang identified by wang default tablespace users default temporary
tablespace temp1 password expired(密码过期)account lock(账户锁定)这里设定是每次登陆数据库
时,都要设置密码,而且账户被锁定了。
SQL> create user diy identified by diy;
用户已创建。
授予用户的系统权限举例:
GRANT CONNECT, RESOURCE(用户可以使用表空间),DBA ,UNLIMITED TABLESPACE, CREATE VIEW,CREATE ANY PROCEDURE, DEBUG ANY PROCEDURE,DEBUG CONNECT SESSIONTO用户名称;
SQL> grant create table,resource,create session to diy;
授权成功。
收回权限:
revoke create session from diy;
我们可以通过with admin option,diy用户可以把权限授予给其他用户:
SQL> grant create session to diy with admin option;
授权成功。
SQL> show user;
USER 为 "DIY"
SQL> grant create session to hr;
授权成功。
这里说明一下:diy把create session 权限授予给了hr,此时dba收回了diy的create session 权限,但是hr的create session不会被收回。
我们也可以给用户授予执行过程的权限:
GRANT
EXECUTE ON produrce_diy TO 用户名称;
select * from dba_sys_privs where grantee=' ';(系统权限)
select * from system_privilege_map;(系统具有的系统权限)
对象权限:
通过用户直接授予:
SQL> show user;
HR
SQL> grant select on w to diy
授权成功。
收回权限:revoke select on w from diy;
通过sys授予:
SQL> show user;
USER 为 "SYS"
SQL> grant select on hr.w to diy;
授权成功。
收回权限:
SQL> revoke select on hr.w from diy;
撤销成功。
注意:此时若diy把该权限授予给其他用户(给diy授权时已添加了with admin option参数),回收了diy了select权限后,那其他用户select hr.w的权限也被回收了。
select * from user_sys_privs where grantee=' ';
本文详细介绍了SQL中系统权限和对象权限的授予、回收方法,包括如何创建用户、指定资源使用限制、以及如何通过系统和对象层级授予或收回各种权限。重点展示了如何灵活地在不同用户间分配权限,以及权限管理的最佳实践。
5409

被折叠的 条评论
为什么被折叠?



