oracle数据库用户管理操作(DCL)

来源:互联网 发布:博达软件 编辑:程序博客网 时间:2024/06/05 11:24

1.oracle的三大用户 和 三大身份
2.常用的sqlplus命令

一、oracle的用户管理:(一般都具备dba角色权限)
1.创建用户:
create user 用户名 identified by 密码;
2.修改用户的密码:
1>修改自己的密码:
passw[ord]
2>修改他人密码:(具备dba角色权限)
1)passw[ord] 被修改的用户名
2)alter user 被修改的用户名
identified by 新密码;
解锁用户:
alter user 用户名 account unlock;
锁定(冻结)用户:
alter user 用户名 account lock;
3.删除用户:
数据对象:用户创建的表 视图 函数 索引 序列等等
1>只删除用户,保留用户创建的数据对象:
drop user 用户名;
2>将用户以及用户创建的数据对象都删除:
drop user 用户名 cascade;
4.给用户赋权:
grant 权限/角色 to 用户;
细节:新建的用户是没有任何权限的,连最基本
的登陆权限都没有,所以新建的用户都
必须赋予对应的权限。
权限:
1.系统权限:
操作oracle的相关权限,创建用户.登陆
创建表.视图等等。
2.对象权限:
是一个用户去操作另一个用户所创建的
数据对象的权限,
select insert update delete all(所有对象权限)

角色:就是多个权限的集合.只要将角色赋予用户,
该角色所持有的所有的权限都赋予了用户了.
1.预定义角色:
oralce内部已经定义好的角色,而且已经给角
色赋予了对应的权限。
这类角色只能使用不能修改。
三大预定义角色:
1>connect:只有一个create session权限了,
即登陆权限。
2>resource:创建表 视图等数据对象的权限.
3>dba:具有oracle所有的权限。
2.自定义角色:
我们自己创建角色再给角色赋予对应的权限.
1)赋予单个系统权限:
grant create session to zs;
2)同时赋予多个系统权限:
grant create table,create view…to zs
3)赋予单个角色:
grant connect to zs;
4)赋予多个角色:
grant coonnect,resource to zs;

某个用户在具备了可以操作其他用户的数据对
象的前提下,操作其他用户的数据对象:
ls去操作zs的t_x表:
select * from zs.t_x;
insert into zs.t_x values();
……

5)赋予单个对象权限:
grant select on zs.t_x to ls;
6)赋予多个对象权限:
grant delete,insert on zs.t_x to ls;

3.权限的传递:
在给某个用户赋权的同时允许该用户将权限
再传递给其他用户。
1>系统权限的传递:
grant 权限 to 用户 with admin option;
2>对象权限的传递:
grant 权限 to 用户 with grant option;

5.撤销权限:
revoke 权限/角色 from 用户;
权限的级联回收:
从某个用户的身上撤销了相关权限,是否撤销了该
用户传递给其他用户对应的权限?
答:角色和系统权限不存在级联回收,而对象权
限存在级联回收。

6.自定义角色:
1.创建角色:
create role 角色名;
2.给自定义角色赋权:
grant 系统权限 to 自定义角色;
grant 其他角色 to 自定义角色;
grant 对象权限 to 自定义角色;
3.自定义角色的使用:和预定义角色一样
grant 自定义角色 to 用户;
4.删除自定义角色:
drop role 自定义角色名;

二、表空间(tablespace)
1.oracle的划分:
1>逻辑划分:是逻辑命名
从逻辑上讲,oracle由一个或多个表空间组成,而一
个表空间又由一个或多个段组成,而一个段又由一
个或多个区组成,而一个区又由一个或多个块组成.
oracle的逻辑划分是:表空间 段 区 块
2>物理划分:是oracle数据真正存储的地方
oracle的数据其实本质还是存储在数据文件中的.
一个表空间由一个或多个数据文件组成。
表空间的所有数据文件的总和就是该表空间的大
小,所有的表空间的大小就是oracle的大小。
表空间的创建:数据文件一般是以.dbf为扩展名
create tablespace 表空间名 datafile 数据文
件的路径 size 数据文件初始大小(单位M);
表空间的使用:一般是在新建用户时给其指定默认的
表空间的,那么该用户后期所创建的所有的数据对象
都存储在其所指定的表空间中;如果没有给用户指定
表空间,默认是SYSTEM表空间,而且还得具备权限.
create user 用户名 identified by 密码
default tablespace 表空间名;

2.表空间的状态:
1.在线(联机):就可以正常操作表空间
语法:alter tablespace 表空间名 online;
2.下线(脱机):不能操作表空间了
语法:alter tablespace 表空间名 offline;
3.只读状态:只能对表空间中的数据进行查询,
不能更新
语法:alter tablespace 表空间名 read only;
4.读写状态:正常操作表空间
语法:alter tablespace 表空间名 read write;

3.表空间的扩容:
1.给表空间增加数据文件:
alter tablespace 表空间名 add datafile
添加的数据文件的路径 size 初始大小;
2.给数据文件重新设置大小:
alter database datafile 被修改的数据文件
的路径 resize 新的大小;
3.将数据文件设置为自增模式(最优):
alter database datafile 被修改的数据文件
的路径 autoextend on next 步长(每次自增的大
小) maxsize 最大容量;

4.移动数据文件:
1.使表空间脱机
2.移动数据文件
host move 数据文件原路径 数据文件新路径;
3.重置表空间绑定的数据文件的路径
alter tablespace 表空间名 rename datafile
‘数据文件原路径’ to ‘数据文件新路径’;
4.使表空间联机

删除表空间以及表空间的内容和所有的数据文
件:(彻底删除)
drop tablespace 表空间名 including contents
and datafiles;

如果一个表空间绑定了多个数据文件,只删除某
一个数据文件:
alter tablespace 表空间名 drop datafile
‘数据文件的路径’;

三、oracle的数据类型:
1.字符型:在oracle中一个中文占两个字符
1>定长字符:
char 长度固定的字符,最大2000字符
char(10) — 表示长度为10的定长字符
‘大黄’ —虽然中文字符’大黄’实际占用的是
4个字符,但在char(10)也会被分配10个字符空间
‘大黄 ‘电脑自动补位,一个汉字两个字
符,一个空格一个字符.

2>变长字符:
varchar2 长度可变的字符,最大是4000字符
varchar2(10) —- 表示长度为10的变长字符
‘大黄’ —-中文数据’大黄’实际占用的是4个
字符,就自动给其分配4个字符空间(最大10字符)
1>char型字符浪费空间,varchar2字符节省空间
2>varchar2型的字符比char型字符的效率低。
3>如果存储的是一些长度固定不变的数据时,
一般就用char,比如性别、身份证、手机号等;
如果存储的是一些长度不确定的数据时,
使用varchar2,比如,姓名。

3>大字符(文本型):clob,最大4G

2.数值型:number
1>表示整数:
number(5) — 表示长度是5位的整数
即 -99999~99999
2>表示浮点数据:
number(5,2) —- 表示总位数是5位,小数部
分是2位,整数部分是3位 -999.99~999.99
3.日期型:
1>date
可以表示年月日
也可以表示时分秒
还可以表示年月日时分秒
2>timestamp:表示年月日时分秒以及毫秒
4.大字节型:blob 存储的就是二进制数据,一般
可以存储视频 音频 图片等。

数据的形式:1.字符型:给我们看的 --- java源代码
原创粉丝点击