主要内容
1.表空间的创建
2.Oracle用户及权限管理设置
通过上一篇文件我们完成了oracle以及PL/SQL客户端的安装,话说买了锅就要做饭,接下来我们围绕以下实例进行学习.
表空间
表空间顾名思义是存放数据表的地方,是数据库的逻辑划分,一个表空间只能属于一个数据库.有表空间和临时表空间之分,临时表空间,可自动释放;而表空间中存储表数据、函数、过程、序列等。是随数据库永久存在的。
表空间的创建
create tablespacelogy_data
logging
datafile 'D:\oracledata\logy_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
注:
1.LOGGING和NOLOGGING正好相反,就是在创建表空间时生成重做日志,NOLOGGING可加快表空间的创建速度.
2.DATAFILE用于指定数据文件的具体位置和大小.
3.文件的大小为50M.如果有多个文件,可以用逗号隔开:
如:DATAFILE 'D:\oracledata\logy_data1.dbf' SIZE50M,
'D:\oracledata\logy_data2.dbf' SIZE 50M
4.autoextend on next 50mmaxsize 2048m 空间不够用时课自动扩展,每次扩展50m最大上限2048m,
5.EXTENT MANAGEMENT LOCAL存储区管理方法,其用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘.
临时表空间的创建
create temporarytablespace logy_temp
tempfile 'D:\oracledata\logy_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
创建方式基本和以上一样,只是多出了一个关键字temporary,一次进行创建约束.
用户的创建
create user logy identified by logy
default tablespace logy_data
temporary tablespace logy_temp;
创建用户的时候指定用户名、密码、表空间、临时表空间.
创建用户
命令:create user【用户名】identifiedby【密码】
修改用户
命令:修改user$记录
select * from user$ where name = 'TESTUSER';--update就OK了
据说oracle11.2.0.2开始提供用户重命名的新特性了,查看你的Oracle版本:
--查看数据库版本
select * from v$version
alter user testuser rename to logy identified by testuser;
以上操作要确保你有修改用户的权限.
修改密码
命令:alter user【用户名】identified by【新密码】
删除用户
命令:drop user【用户名】[cascade]
权限和角色
在新建一个用户之后还要对这个用户进行授权操作,要使用有能力授权的用户,如sys、system
角色
角色是指由系统权限集合。通常给某个用户授予权限时如果没有角色存在的话,那么需要一条一条的操作,角色的存在就是使得授权变得很方便。
通常一个角色由多个系统权限组成。常用的角色有三个connect、dba、resource(在任何表空间建表)。
授权命令
grant【权限名】 to【用户名】
分配角色
grant【角色名】 to【用户名】
收回权限
revoke【权限名】 from【用户名】
实例演示:
1〉创建用户
create user logy identified by logy;
2>使logy能够被连接
grant create session to logy;
3>让logy能够在任何表空间下建表
grant resource to logy
4>授权logy可以查看scott下的emp表
grant select on emp to logy;
5>登录到logy下查看emp表
select * from scott.emp;
6>回收权限
revoke resource from logy;
revoke select on emp from logy;
权限的传递
当希望logy用户可以把被授予的权限继续传给其他用户时需要传递对象权限with grant option
如:grant select on emp to stuwith grant option
如果是系统权限:就加上with admin option
如:grant connect to stu withadmin option
with admin option和with grant option的区别
1、with admin option 用于系统权限授权,withgrant option 用于对象授权。
2、给一个用户授予系统权限带上with admin option时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效,如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的createsession权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create sessionfrom B. 而withgrant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如:grantselect on 表名 to A with grant option;,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。