Oracle创建表空间、创建用户以及授权、查看权限

1.创建临时表空间


CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE 'C:\oracle\product\10.1.0\oradata\orcl\test_temp01.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;

2.创建用户表空间


CREATE TABLESPACE test_data
LOGGING
DATAFILE 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\TEST_DATA01.DBF' 
SIZE 32M 
AUTOEXTEND ON 
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;

3.创建用户并制定表空间


CREATE USER username IDENTIFIED BY password
DEFAULT TABLESPACE TEST_DATA
TEMPORARY TABLESPACE TEST_TEMP;

4.给用户授予权限

 

GRANT  connect,resource,session,create view any ,dba TO 用户名;//连接权限,修改权限,登录权限,创建视图权限,最高权限

 


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.撤销权限

 

revoke connect,resource from 用户名;

 

 

6.更改用户密码

alter user 用户名 identified by 新密码; 

 

 

7.删除用户
select username,sid,serial# from v$session; //查看用户名,连接状况
alter system kill session '111,1807'; //kill  session
select saddr,sid,serial#,paddr,username,status from v$session where username is not null;//通过查看session的状态来确定该session是否被kill 了,status 为要删除用户的                                                                               // session状态,如果还为inactive,说明没有被kill掉,如果状态为killed ,说明已kill。
drop user app1 cascade;  //删除用户以及用户表空间下所有对象

 

 
8.删除用户及其对象

drop user 用户名 cascade;

 

9.创建角色

 

create role 角色名;


10.为角色赋予权限
 

grant 权限(connect,resource,dba,create view,create any table )on 表名 to 角色名;  

权限:(连接,修改,最高,创建视图,建表)

 

11.将角色授与username用户,也就是说,使username这个用户可以管理和使用role所拥有的资源

 

GRANT 角色名 TO username;

12.删除角色

 

drop role 角色名;

 13. 查询当前数据库实例名
 
方法一:select instance_name from v$instance;
方法二:show parameter instance
1)查看用户的连接状况

 

select username,sid,serial# from v$session

 

------------------------------------------

如下结果:

 

username          sid                serial#

----------------------------------------

NETBNEW          513              22974
NETBNEW          514              18183
NETBNEW          516              21573
NETBNEW          531              9
WUZHQ             532              4562

(2)找到要删除用户的sid,和serial,并删除

-------------------------------------------

如:你要删除用户'WUZHQ',可以这样做:

 

 

alter system kill session'532,4562'

 

 

(3)删除用户

--------------------------------------------

 

drop user username cascade

 

 

(**)如果在drop 后还提示ORA-01940:无法删除当前已链接的用户,说明还有连接的session,可以通过查看session的状态来确定该session是否被kill 了,用如下语句查看:

-------------------------------------

 

select saddr,sid,serial#,paddr,username,status from v$session where username is not null

 

结果如下(以我的库为例):

 saddr                     sid           serial#            paddr              username              status

--------------------------------------------------------------------------------------------------------

564A1E28              513           22974            569638F4        NETBNEW             ACTIVE
564A30DC              514          18183            569688CC        NETBNEW            INACTIVE
564A5644              516           21573            56963340        NETBNEW            INACTIVE
564B6ED0              531           9                   56962D8C        NETBNEW            INACTIVE
564B8184              532          4562               56A1075C        WUZHQ                KILLED

 

status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。

由此可见,WUZHQ这个用户的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;

 登录用户时忘记密码,修改密码(在最高权限用户下修改):

alter user 用户名 identified by 新密码;

 

-------遇到no privileges on tablespace 'tablespace '

alter user userquota 10M[unlimited] on tablespace;

 

posted on 2016-04-15 11:26  蒙奇奇小眼睛  阅读(237)  评论(0)    收藏  举报

导航