1、创建临时表空间
CREATE
TEMPORARY TABLESPACE test_temp
TEMPFILE
'd:\oracle\product\10.2.0\oradata\orcl\test_temp01.dbf'
//注意临时文件使用tempfile,数据文件使用datafile
SIZE
32M
AUTOEXTEND
ON
NEXT
32M MAXSIZE 2048M
EXTENT
MANAGEMENT LOCAL;
2、创建用户表空间
CREATE
TABLESPACE test_data //创建表空间
test_data
LOGGING
//使用logging时,将生成表空间的日志记录选项,用来记录对该表空间中数据对象的任何操作
DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST_DATA01.DBF'
//数据文件物理存储路径和文件名
SIZE
32M //初始大小
AUTOEXTEND
ON //指定数据文件为自动扩展;若要不扩展,将on改为off即可
NEXT
32M MAXSIZE 2048M //next 32m:文件每次扩展的大小为32M;
maxsize 2048M:数据文件所扩展的最大限度为2048M
EXTENT
MANAGEMENT LOCAL; //本地化管理表空间
3、创建用户并制定表空间
CREATE
USER username IDENTIFIED BY password
DEFAULT
TABLESPACE TEST_DATA
TEMPORARY
TABLESPACE TEST_TEMP;
4、给用户授予权限
GRANT
CREATE
SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX,
CREATE ANY PROCEDURE,
ALTER
ANY TABLE, ALTER ANY PROCEDURE,
DROP
ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
SELECT
ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY
TABLE
TO
username;
5、将role这个角色授与username,也就是说,使username这个用户可以管理和使用role所拥有的资源
GRANT role TO username;
----------------------------------------------------------------------------------------------------------------------------
上述第4和第5测试过程中发现user并没有拥有相应的权限,后来执行下面一条语句后才有:
grant connect,dba,resource to username;
可以多授点权限:
grant connect,dba.resource, unlimited tablespace to
username;
-----------------------------------------------查看用户权限-------------------------------------------------------------
查看当前用户 SHOW USER;
查看连接数 select count(*) from
v$session;
查看所有用户
SELECT
* FROM DBA_USERS;
SELECT
* FROM ALL_USERS;
SELECT
* FROM USER_USERS;
查看用户系统权限
SELECT
* FROM DBA_SYS_PRIVS;
SELECT
* FROM USER_SYS_PRIVS;
查看用户对象或角色权限
SELECT * FROM DBA_TAB_PRIVS;
SELECT
* FROM ALL_TAB_PRIVS;
SELECT
* FROM USER_TAB_PRIVS;
查看所有角色
SELECT * FROM DBA_ROLES;
查看用户或角色所拥有的角色
SELECT * FROM DBA_ROLE_PRIVS;
SELECT
* FROM USER_ROLE_PRIVS;
-------遇到no privileges on tablespace 'tablespace '
alter user userquota 10M[unlimited] on tablespace;