1.创建用户
语法:create user 用户名 identified by 密码
注意:
A.oracle密码必须是字母开头
B.新创建的用户是没有任何权限,包括登录数据库等。
C.oracle用户名和密码不区分大小写
-------------------------------------------------------
2.修改用户密码
修改自己的密码,语法:PASSWORD 用户名;
修改别人的密码(必须具有DBA权限或者拥有alter user系统权限),语法:ALTER USER 用户名 IDENTIFIED BY 新密码 ;
-------------------------------------------------------
3.删除用户:DROP USER 用户名 【cascade】
注意:
A,不能删除自己的用户名
B,删除其他用户必须具有dba
C,在删除用户时,如果这个用户已经创建了表,那么删除时需要带一个参数:cascade,也就是级联删除该用户下的表
-------------------------------------------------------
4.锁定用户(使之不可用)
语法:alter user 用户名 account lock
#用户解锁(使之可用)
语法:alter user 用户名 account unlock
-------------------------------------------------------
5.切换用户:CONNECT 用户名/密码;
-------------------------------------------------------
7.显示当前用户:SHOW user
-------------------------------------------------------
8.查询所有用户:SELECT * FROM USER_TABLES;
9.查看用户使用的表空间:
SELECT USERNAME,DEFAULT_TABLESPACE
FROM DBA_USERS
WHERE USERNAME="用户名"
9.查询某用户下的所有表:
select * from dba_all_tables where owner='SCOTT'
-------------------------------------------------------
9.查看当前用户角色:SELECT * FROM USER_ROLE_PRIVS;
-------------------------------------------------------
10.查看当前用户权限:SELECT * FROM SESSION_PRIVS;
=======================================================
*******************************************************
=======================================================
11.分配权限。使用具有dba权限的用户(默认的有sys、system)给新用户分配权限(新用户没有权限是无法登录数据库)
语法:grant 权限/角色 to 用户名
例如:grant connect to zhangsan;
或者 grant create session to zhangsan;
#权限分类:
1)系统权限:用户对数据库的相关权限。
2)对象权限:用户对其他用户的数据对象操作的权限。
#oracle角色分类:
1)预定义角色:已经有的角色。
2)自定义角色:用户自定义的角色。
注:角色是权限的集合,只用把用户分为某种角色,那么这个用户便有了这个角色的所有权限。
#oracle预定义角色主要有:
1)connect角色,具有的权限有:
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话(连接数据库)
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
2)DBA角色:拥有系统所有系统级权限(不要轻易授权给用户),默认的dba用户有sys和system,
他们可以将任何系统权限授予其他用户,但是注意的是dba不具备sysba和sysoper特权(启动和关闭数据库)。
3)RESOURCE角色:是授予开发人员的。具有的权限有:
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
#自定义角色。自己定义的角色,根据自己的需求来定义,一般是dba来建立,如果不是dba,则需要具有CREATE ROLE权限,
建立角色时可以指定验证方式(不验证、数据库验证等)。
1).建立角色,不验证.
如果角色是公用的角色,可以不验证(就是没密码任何用户都可以使用)
语法:create role 角色名 not identified;
2).建立角色,验证(有密码,必须提供正确的密码才能够使用).
采用这样的方式时,角色名、口令放在数据库中。当激活该角色时,必须提供口令,在建立这种角色时必须提供口令。
语法:create role 角色名 identified by 密码
#角色权限:当建立角色后,角色没有任何权限,为了使得角色能够完成特定的任务,必须为其授予相应的系统权限和对象权限。
#角色授权:给角色授权和给用户授权没有太多的区别,需要注意的是,系统权限的unlimited tablespace和对象权限的with grant option选项是不能够授予角色的。
语法:grant 权限 to 角色名 【with admin option】
注:with admin option是说权限可以继续传递。
例如:grant create session to myrole with admin option
grant select to myrole
grant select
-------------------------------------------------
12.删除角色。一般是dba执行,如果其他用户则需要该用户具有 drop any role 系统权限。
语法:drop role 角色名。角色删除后,该用户就没有相应权限。
13.用户之间授权
#当前用户访问其他用户的对象时,不能直接访问,只有得到具有dba权限的用户或这个对象的用户授权后才有权限访问,并且在访问时必须加上这个用户名称,比如访问scott用户的表 emp,只有得到授权后才能这样访问:select * from scott.emp
#四种访问权限:select、update、insert、delete、all
#授权方式:GRANT 权限 ON 数据库对象 TO 目标用户
1)用户之间授权。scott将查询自己的表emp权限授予zhangsan这个用户。
grant all on emp to zhangsan;
============================================================
*************************用户授权实例************************
============================================================
1.创建用户zhangsan
2.使用dba用户给张三授权,使之能够连接数据库并能够创建表
《未完待续。。。》