Oracle笔记1--用户管理

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用户给张三授权,使之能够连接数据库并能够创建表

《未完待续。。。》

<!--EndFragment-->

你可能感兴趣的:(oracle)