權限包括:
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;刪除角色