权限包括:
create session 允许用户登录数据库权限 create table 允许用户创建表权限 unlimited tablespace 允许用户在其他表空间随意建表
角色包括:
connect resource dba
CONNECT角色: --是授予最终用户的典型权利,最基本的权力,能够连接到ORACLE数据库中,并在对其他用户的表有访问权限时,
做SELECT、UPDATE、INSERTT等操作。
ALTER SESSION --修改会话 CREATE CLUSTER --建立聚簇 CREATE DATABASE LINK --建立数据库链接 CREATE SEQUENCE --建立序列 CREATE SESSION --建立会话 CREATE SYNONYM --建立同义词 CREATE VIEW --建立视图
RESOURCE角色: --是授予开发人员的,能在自己的方案中创建表、序列、视图等。
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
DBA角色,是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限
//sqlplus /nolog则是不以任何用户登录,相当于只是打开一个登录窗口而已,接下来需要用 用户名跟密码进行登录操作 //一般这样做的目的是防止别人看到你的用户密码 //nolog是不登陆到数据库服务器的意思 //sqlplus /nolog一般是启动sqlplus但不进行连接操作 //nolog 选项会启动sqlplus, 但不连接数据库 [oracle@prod:/home/oracle$sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 21 20:28:53 2022 Copyright (c) 1982, 2013, Oracle. All rights reserved. SQL> conn / as sysdba; //或者是conn username/password SQL> create user username identified by password --username/password都是用户自定义 SQL> grant dba to username; SQL> conn username/password SQL> select * from user_sys_privs; sqlplus / as sysdba是一种简化写法,其实是省略了用户名和密码,完整的写法是 sqlplus sys/password as sysdba 而sqlplus /nolog是另外的用法了,nolog表示不进行登录,仅仅是进入sqlplus软件而已 //如果没有/nolog参数,sqlplus直接会提示你输入用户名和密码 [oracle@prod:/home/oracle$sqlplus SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 21 20:41:47 2022 Copyright (c) 1982, 2013, Oracle. All rights reserved. Enter user-name: aaa Enter password: ERROR: ORA-01017: invalid username/password; logon denied
我们介绍一下Oracle用户、权限表以及创建。
一、默认用户 sys;//系统管理员,拥有最高权限 system;//本地管理员,次高权限 scott;//普通用户,密码默认为tiger,默认未解锁 oracle有三个默认的用户名和密码 1.用户名:sys 密码:change_on_install 2.用户名:system 密码:manager 3.用户名:scott 密码:tiger 二、登陆 sqlplus / as sysdba;//登陆sys帐户 sqlplus sys as sysdba;//同上 sqlplus scott/tiger;//登陆普通用户scott 三、管理用户 create user user01;//在管理员帐户下,创建用户user01 alert user scott identified by tiger;//修改默认密码,其他用户修改也是一样的 四,授予权限 1、默认的普通用户scott默认未解锁,不能使用,新建的用户也没有任何权限,必须授予权限 grant create session to user01;//授予user01用户创建session的权限,即登陆权限,允许用户登录数据库 grant unlimited tablespace to user01;//授予user01用户使用表空间的权限 grant create table to user01;//授予创建表的权限 grante drop table to user01;//授予删除表的权限 grant insert table to user01;//插入表的权限 grant update table to user01;//修改表的权限 grant create view to user01;
grant all to public;//这条比较重要,授予所有权限给所有用户
五、查看权限 select * from user_sys_privs;//查看当前用户所有权限 select * from user_tab_privs;//查看所用用户对表的权限 六、操作表的用户的表 select * from user01.tablename 七、权限传递 即用户A将权限授予B,B可以将操作的权限再授予C,命令如下: grant alert table on tablename to user01 with admin option;//关键字 with admin option grant alert table on tablename to user01 with grant option;//关键字 with grant option效果和admin类似 八、角色 角色即权限的集合,可以把一个角色授予给用户 create role myrole;//创建角色 grant create session to myrole;//将创建session的权限授予myrole grant myrole to user01;//授予zhangsan用户myrole的角色 drop role myrole;删除角色