Oracle-SQL开发 ---- 用户、权限与角色
原创约 1134 字大约 4 分钟...
权限与角色.md
62-Oracle-SQL开发 ---- 用户、注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
概念
- 用户
- 用户是数据库的使用者。
- 用户一般是由DBA来创建和维护的,创建用户后,用户不可 以执行任何Oracle操作(包括建立会话),只有赋予用户 相关的权限,用户才能执行权限允许范围内的操作。

- 权限
- 权限概述
- 数据库用户要想在数据库上执行任何操作,必须首先要拥 有权限,包括建立会话。
- 权限分类
- 系统权限:允许用户在数据库中执行指定的行为,一般可 以理解成比较通用的一类权限。
- 对象权限:允许用户访问和操作一个指定的对象,该对象 是一个确切存储在数据库中的命名对象。
- 系统特权
- SYSOPER:启动停止数据库,恢复数据库等;
- SYSDBA:所有SYSOPER功能的管理权限;创建数据库等权限
示例代码
----------------------------------------------
-- 用户
----------------------------------------------
1.【管理员】创建用户
create user user1 identified by 123456;
2.【管理员】授权用户:访问数据库的权限create session
grant create session to user1;
3.【user1】创建表tab_test
create table tab_test(
tid number(4)
);
4.【管理员】授权用户:创建表的权限create table
grant create table to user1;
5.【管理员】授权表空间:
alter user user1 quota 10M on users;
6.修改密码 ① 用户已登录,修改密码 ② 用户忘记密码,管理重置
alter user user1 identified by 123;
7.用户状态:正常(未锁定)、锁定、密码过期
alter user user1 account lock;--管理员锁定(the account is locked)
alter user user1 account unlock;--管理员解锁
alter user user1 password expire;--管理员设置密码过期
8.【管理员】删除用户:处于连接状态的用户不能被删除
drop user user1 cascade;
----------------------------------------------
-- 权限: 系统权限 与 对象权限
--
-- 系统权限:A->B->C, 当A回收B的权限时,【不会级联】回收C的权限
-- 对象权限:A->B->C, 当A回收B的权限时,【会级联】 回收C的权限
----------------------------------------------
create user user2 identified by 123456;
create user user3 identified by 123456;
--系统权限
1.授系统权限给用户 grant...to --with admin option 允许user2继续将该权限授权给其他用户,比如User3 管理员 -> user2 -> user3
grant create session to user2 with admin option;--管理员授权给user2
grant create session to user3; --user2授权给user3
2.从用户撤回系统权限 revoke...from -- A->B->C, 当A回收B的权限时,不会级联回收C的权限
revoke create session from user2;
revoke create session from user3;
--对象权限
1.授对象权限给用户 grant...on...to --with grant option 允许user2继续将该权限授权给其他用户,比如User3 scott -> user2 -> user3
grant select on emp to user2 with grant option; --scott授权给user2
grant select on scott.emp to user3; --user2授权给user3 单个授权
grant update,insert,delete on scott.emp to user2; --scott授权给user2 批量授权
grant all privileges on scott.emp to user2; --scott授权给user2 全量授权
grant update(job,deptno) on scott.emp to user2; --scott授权给user2 仅限制修改job与deptno列
2.从用户撤回对象权限 revoke...on...from -- A->B->C, 当A回收B的权限时,会级联回收C的权限
revoke select on scott.emp from user2;
----------------------------------------------
-- 角色:权限的集合
----------------------------------------------
1.【管理员】创建角色
create role stuRole;
2.【管理员】给角色授权
grant create session,create table,create view to stuRole;
3.【管理员】创建用户
create user user4 identified by 123456;
create user user5 identified by 123456;
4.【管理员】给用户授予角色
grant stuRole to user4;
grant stuRole to user5;
5.【user4】查看权限
select * from session_privs;
6.【管理员】回收角色的权限
revoke create session from stuRole;
7.【管理员】回收用户的角色
revoke stuRole from user4;
8.【管理员】删除角色
drop role stuRole;
----------------------------------------------
-- 预定义角色:DBA、Connect、Resource
----------------------------------------------
create user user6 identified by 123456;
grant connect,resource to user6;
select * from dba_sys_privs where grantee = 'DBA';--管理员权限
select * from dba_sys_privs where grantee = 'CONNECT';--管理员权限 CREATE SESSION
select * from dba_sys_privs where grantee = 'RESOURCE';--管理员权限
----------------------------------------------
-- public
----------------------------------------------
grant create session to public;--将登陆权限授权给所有人
分割线
相关信息
以上就是我关于 Oracle-SQL开发 ---- 用户、权限与角色 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。
Powered by Waline v2.15.4