Oracle数据库---用户与角色
Oracle数据库---用户与角色
版权声明:版权所有,转载请注明出处.谢谢 https://blog.csdn.net/weixin_35353187/article/details/87929965
安装Oracle时,若没有设置默认密码,则以下为默认账户的密码:
用户名 / 密码 | 登录身份 | 说明 |
sys/change_on_install | SYSDBA 或 SYSOPER | 不能以 NORMAL 登录,可作为默认的系统管理员,超级管理员,负责数据库系统的管理 |
system/manager | SYSDBA 或 NORMAL | 普通管理员,负责数据库对象的管理,如:创建用户,授权,创建数据库等等 |
sysman/oem_temp | sysman 为 oms 的用户名 | |
scott/tiger | NORMAL | 普通用户 |
aqadm /aqadm | SYSDBA 或 NORMAL | 高级队列管理员 |
Dbsnmp/dbsnmp | SYSDBA 或 NORMAL | 复制管理员 |
scott | SYSDBA 或 NORMAL | 该用户主要用于给我们学习的时候使用。如果要使用该用户就必须解锁,并且修改密码 |
hr | SYSDBA 或 NORMAL | 测试用户。该用户有一些hr相关的测试数据。如果要使用该用户就必须解锁,并且修改密码 |
cmd窗口连接数据库时,运行cmd命令行
sqlplus /nolog 无用户名登录
conn /as sysdba 连接到数据本地数据
alter user system identified by password 修改System 密码 为password
查看所有用户信息:
---dba_users:保存系统中所有用户的详细信息。
select * from dba_users;
创建用户
-
create user 用户名
-
identified by 密码
-
[default tablespace 表空间];
-
--新创建的用户没有任何权限,登陆后会提示
-
--创建用户
-
create user test01
-
identified by 123456
-
default tablespace test01;
-
--登录:也需要有权限
-
--Oracle 中已存在三个重要的角色:connect 角色,resource 角色,dba 角色。
-
-
CONNECT 角色: --是授予最终用户的典型权利,最基本的
-
ALTER SESSION --修改会话
-
CREATE CLUSTER --建立聚簇
-
CREATE DATABASE LINK --建立数据库链接
-
CREATE SEQUENCE --建立序列
-
CREATE SESSION --建立会话
-
CREATE SYNONYM --建立同义词
-
CREATE VIEW --建立视图
-
-
-
RESOURCE 角色: --是授予开发人员的
-
CREATE CLUSTER --建立聚簇
-
CREATE PROCEDURE --建立过程
-
CREATE SEQUENCE --建立序列
-
CREATE TABLE --建表
-
CREATE TRIGGER --建立触发器
-
CREATE TYPE --建立类型
-
-
-
DBA 角色:拥有全部特权,是系统最高权限,只有 DBA 才可以创建数据库结构,
-
并且系统权限也需要 DBA 授出,且 DBA 用户可以操作全体用户的任意基表,包括删除
-
-
grant dba to user_test;
-
-
进入 system 用户下给用户赋予 dba 权限,否则无法正常登陆
-
--分配角色权限:
-
-
-- 授权: grant connect,resource to test01;
-
grant dba to test01;
-
-
--撤销授权
-
-- revoke connect,resource from test01;
设置用户密码
alter user 用户名 identified by 密码;
alter user test01 identified by a123456; --该方式不能修改为纯数字密码
解锁用户
alter user 用户名 account unlock;
-
--锁定hr测试用户
-
alter user hr account lock;
-
-
--解锁hr测试用户
-
alter user hr account unlock;
删除用户
drop user 用户名 [cascade];
-
drop user test01 [cascade];
-
--如果删除的用户中已经有数据,那么删除用户的时候,就必须要指定cascade关键字。
系统权限
-
--系统权限就是创建数据库对象的权限。系统权限都是以create开头的权限。
-
--例如:创建会话、创建表、创建索引、创建序列等等。
-
--create session、create table、create index、create sequence等等。
-
--授予用户系统权限。
-
grant create 权限 to 用户;
-
--只有管理员才可以授予用户系统权限。
-
--授予用户test01创建会话、创建表的系统权限。
-
grant create session,create table
-
to test01;
对象权限
-
--对象权限就是对数据库对象的操作权限。
-
--例如:添加表数据、查询表、删除表等等操作。
-
select、insert、update、delete、all。
-
--授予用户对象权限。
-
grant 操作权限
-
on 用户1.表名
-
to 用户2;
-
--授予用户test01查询和插入scott用户的emp表的权限。
-
grant select,insert
-
on scott.emp
-
to test01;
查看用户权限
-
dba_sys_privs:保存所有用户的系统权限;
-
dba_tab_privs:保存所有用户的对象权限;
-
select *
-
from dba_sys_privs
-
where grantee ='TEST01';
-
-
select *
-
from dba_tab_privs
-
where grantee ='TEST01';
回收权限
-
--回收用户的系统权限:
-
revoke create 权限 from 用户;
-
-
--回收用户的对象权限:
-
revoke 操作 on 用户1.表名 from 用户2;
-
revoke create table
-
from test01;
-
-
revoke insert
-
on scott.emp
-
from test01;
角色
角色就是一组权限的集合。
角色的作用:简化授权操作。
Oracle 中已存在三个重要的角色:connect 角色,resource 角色,dba 角色
使用角色
-
第一步:创建角色;
-
create role 角色名;
-
-
第二步:给角色授权;
-
grant create 权限to 角色; --授予角色系统权限
-
grant 操作 on 用户.表名 to 角色; --授予角色对象权限
-
-
第三步:把角色赋给用户;
-
grant 角色 to 用户;
-
--第一步:创建角色;
-
create role t_role;
-
-
--第二步:给角色授权;
-
grant create table
-
to t_role; --授予角色系统权限
-
-
grant select
-
on scott.emp
-
to t_role; --授予角色对象权限
-
-
--第三步:把角色赋给用户;
-
grant t_role
-
to test01;
查询用户角色
-
--dba_role_privs:保存所有用户的角色信息。
-
select *
-
from dba_role_privs
-
where grantee ='TEST01';
回收角色
-
revoke 角色名
-
from 用户;
-
revoke t_role
-
from test01;
删除角色
drop role 角色名;
-
drop role t_role;
-
--删除角色之后,那么拥有该角色的用户就会自动地把该角色取消。
ORACLE数据库的用户权限和角色权限控制