Oracle Pl/sql的操作大全

2020-10-21 Easyvk

刪除該用戶及下面的所有關聯

drop user fspdrs cascade;

創建一個用戶

create user fspdrs

identified by "123"

default tablespace TEMP

temporary tablespace TEMP

profile DEFAULT;


a 查看用戶、權限、角色的適用命令

1.查看所有用戶:

select * from dba_users;

select * from all_users;

select * from user_users;

2.查看用戶系統權限:

select * from dba_sys_privs;

select * from session_privs;

select * from user_sys_privs;

3.查看用戶對象權限:

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

4.查看所有角色:

select * from dba_roles;

5.查看用戶所擁有的角色:

select * from dba_role_privs;

select * from user_role_privs;

b 與權限,角色相關的視圖大概有下面這些:

DBA_SYS_PRIVS: 查詢某個用戶所擁有的系統權限

USER_SYS_PRIVS: 查詢當前用戶所擁有的系統權限

SESSION_PRIVS: 查詢當前用戶所擁有的全部權限

ROLE_SYS_PRIVS: 查詢某個角色所擁有的系統權限 注意: 要以 SYS 用戶登陸查詢這個視圖,否則返回空.

ROLE_ROLE_PRIVS: 當前角色被賦予的角色

SESSION_ROLES: 當前用戶被激活的角色

USER_ROLE_PRIVS: 當前用戶被授予的角色

關於創建視圖權限不足時,可以在dos下用sqlplus /@orcl as sysdba登錄到Oracle,

再給所需要的用戶賦予權限:grant create view to scott;再用pl/sql以scott登錄時就可以創建視圖了。

關於scott用戶的解鎖命令:alter user scott account unlock.


PL/SQL DBA 創建用戶權限

ORACLE有三大系統角色:connect,resource,dba;

1、創建新用戶

@:利用PL/SQL工具創建,

File--->New--->user,打開創建新用戶界面,所界面上內容,

依次輸入 NAME,PASSWOERD,DEFAULT TABLESPACE,TEMPORARY TABLESPACE 內容後,

下面"APPLY"按鈕會顯示,點擊「APPLY」後,新用戶就創建OK;

2. 給用戶開通權限命令:

grant

create session,create table,select any table,update any table,

insert any table,delete any table to user_name;

grant

connect,create table,select any table,update any table,

insert any table,delete any table to user_name;

註: 創建新用戶時 create session或connect 必需創建,否則 用戶無法登陸PL/SQL;

create session與connect的區別:

create session 是權限,connect是角色,當查詢用戶權限時, 權限可以看到,而角色是看不到的!

3、給用戶開通個別表權限

grant select on tablename to username;

4. 刪除用戶權限命令:

revoke

create table,select any table,update any table,insert any table,delete any table,sysdba

from user_name;

5、 查詢用戶權限:

顯示已被授予的全部對象特權:select * from sys.dba_sys_privs

顯示已被授予權限的用戶特權:select * from sys.dba_sys_privs a where a.grantee='username';

6、查詢當前運行的SQL 語句:

select a.machine, a.program, b.piece, b.sql_text

from v$session a, v$sqltext b, v$process c

where a.paddr = c.addr

and a.sql_hash_value = b.hash_value

order by b.piece;

7、移除不用的用戶

drop user username cascade;

註:此移除會移除該用戶下以前所有對數據Create操作過的東西(不要輕易用此命令),移除後該用戶下的東西都將會刪除 !!!

8、創建角色

除了前面講到的三種系統角色

connect、resource和dba,用戶還可以在oracle創建自己的role。

用戶創建的role可以由表或系統權限或兩者的組合構成。

為了創建role,用戶必須具有create role系統權限。下面給出一個create role命令的實例:

create role student;

這條命令創建了一個名為student的role。

一旦創建了一個role,用戶就可以給他授權。給role授權的grant命令的語法與對對用戶的語法相同。

在給role授權時,在grant命令的to子句中要使用role的名稱,如下所示:

grant select on class to student;

現在,擁有student 角色的所有用戶都具有對class 表的select權限。

9、刪除角色

要刪除角色,可以使用drop role命令,如下所示:

drop role student;

指定的role連同與之相關的權限將從資料庫中全部刪除。

10.pl/sql導出表結構和數據

導出表結構:

Tools-->Export User Objects -->選擇要導出的表(包括Sequence等)-->.sql文件

導出表數據:

Tools-->Export Tables-->選擇表,選擇SQL Inserts-->.sql文件

執行這些.sql文件時,要使用新建Command Window來執行.


1.CONNECT角色: 授於最終用戶的典型最基本的權利

ALTER SESSION --修改會話

CREATE CLUSTER --建立聚簇

CREATE DATABASE LINK --建立資料庫連結

CREATE SEQUENCE --建立序列

CREATE SESSION --建立會話

CREATE SYNONYM --建立同義詞

CREATE VIEW --建立視圖

2.RESOURCE角色: 是授予開發人員的

CREATE CLUSTER --建立聚簇

CREATE PROCEDURE --建立過程

CREATE SEQUENCE --建立序列

CREATE TABLE --建表

CREATE TRIGGER --建立觸發器

CREATE TYPE --建立類型


1.查看所有用戶:

select * from dba_users;

select * from all_users;

select * from user_users;

2.查看用戶或角色系統權限:

select * from dba_sys_privs;

select * from user_sys_privs;

3.查看角色所包含的權限

select * from role_sys_privs;

4.查看用戶對象權限:

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

5.查看所有角色:

select * from dba_roles;

6.查看用戶或角色所擁有的角色:

select * from dba_role_privs;

select * from user_role_privs;

查詢版本

select * from v$version;

select * from v$instance;

select * from product_component_version;

查詢當前用戶有多少張表

SELECT T.OBJECT_NAME,

T.OBJECT_TYPE,

(SELECT COUNT(*)

FROM USER_OBJECTS P

WHERE P.OBJECT_TYPE = 'TABLE'

AND INSTRB(P.OBJECT_NAME, '$', 1) = 0) AS totalTableNums

FROM USER_OBJECTS T

WHERE 1 = 1

AND T.OBJECT_TYPE = 'TABLE'

AND INSTRB(T.OBJECT_NAME, '$', 1) = 0;

相關焦點

  • oracle PL/SQL
    等等基本結構以及流程控制PL/SQL是Oracle(Procedural Language/SQL)是在Oracle中在標準的sql之上進行擴展的語言 ;執行sql語句,定義變量,給變量賦值,條件,循環,異常處理,遊標等等.
  • Oracle 資料庫管理員及管理員的作用
    二、Oracle中管理資料庫的用戶主要是sys和system,以下是它們的區別:注:在使用pl/sql develpoer測試用戶權限的時候,確保oracle服務端設置的是口令認證,而不是作業系統認證。
  • Oracle資料庫管理工具PLSQL安裝教程
    pl/sql developer是一個專門面向oracle的資料庫管理應用。本文介紹如何安裝plsql。01原程序安裝1、下載好安裝文件,我這裡有4個文件,分別是安裝程序 pl-sql-dev-8-setup中文包 chinese.exe和Chinese.lang註冊工具 pl-sql-dev-8-keygen
  • 圖形化手把手教你創建Oracle資料庫實例並認證是否成功
    分享主題:如何創建資料庫實例並進行授權,pl/sql客戶端如何進行配置創建好的資料庫實例並怎樣連接;本教程創建Oracle資料庫實例的前提條件是oracle服務端資料庫軟體已經安裝好,下面介紹如果創建資料庫實例並授權同時介紹如果用pl/sql 客戶端工具如何打開創建好的資料庫實例
  • 零起點學oracle資料庫sql語言1
    非關係型:1)1970年IBM提出關係型資料庫模型2)要點對象之間的關係的組合定義了一些操作通過嚴格的約束條件來保證數據完整性和一致性3)關係型資料庫由一系列的關係組成,準確說是由二維表來組成4)資料庫開發的過程(1) 了解客戶需求,用自然語言描述(
  • 最方便的在線SQL學習環境——Oracle Live SQL
    http://livesql.oracle.com參考https://blogs.oracle.com/imc/oracle-live-sqlhttps://blogs.oracle.com/oracle-database/oracle-database-19c-now-available-on-livesqlhttps://blogs.oracle.com/oracle-database/oracle-database-documentation-integration-with-live-sql
  • 修改oracle數據提示被用戶鎖住?別人正在用這個表?
    今天在修改oracle數據的時候,提示:記錄被另一個用戶鎖住。後來關閉pl/sql後,重新打開進入用select t .* ,t.rowid from tablename t;修改,還是提示這個錯誤,這時是不是同時有人在修改這個表導致現在不能修改啊。後來等了一會再試,還是這樣的問題,這時懷疑是不是被死鎖住了。
  • SQL Server資料庫和Oracle行轉列的特殊方案描述
    文章主要描述的是SQL Server資料庫和Oracle資料庫行轉列的一種比較典型操作方法,對於有些業務來說,數據在表中的存儲與其最終的Grid表現恰好相當於把源表倒轉,那麼這個時候我們就碰到了如何把行轉化為列的問題。
  • Oracle19C DataGuard搭建
    .log' size 200M;sql> alter database add standby logfile group 12 '/home/oracle/app/oracle/oradata/ORCL/dg/standby12.log' size 200M;sql> alter database add
  • PL/SQL設置
    5、調試存儲過程 在使用PL/SQL Developer操作Oracle時,有時候調用某些存儲過程,或者調試存儲過程; 調用存儲過程的方法:首先,在PL/SQL Developer左邊的Browser中選擇Procedures,查找需要調用的存儲過程;然後,選中調試的存儲過程,點擊右鍵,選擇Test,在彈出來的Test scrīpt窗口中,
  • Oracle資料庫12cR2版本的SQL計劃管理
    而oracle優化器非常適合在沒有用戶幹擾的情況下產生最佳執行計劃。但SQL語句的執行計劃會有不可預測的變化,原因包括重新收集優化器統計信息,更改優化器參數或對象元數據定義。由於缺少一個執行計劃的改變總是好的保證,一些客戶會選擇固定他們的SQL執行計劃(stored outlines)或者鎖定優化器統計信息。
  • Oracle資料庫擴展語言PL/SQL之數據類型
    PL/SQL 代碼可以使用任何 ASCII 文本編輯器編寫,所以對任何 ORACLE 能夠運行的作業系統都是非常便利的 對於 SQL , ORACLE 必須在同一時間處理每一條 SQL 語句,在網絡環境下這就意味作每一個獨立的調用都必須被 oracle 伺服器處理,這就佔用大量的伺服器時間,同時導致網絡擁擠。
  • Oracle常用命令大全
    1.create user username identified by password;// 建用戶名和密碼 oracle ,oracle2.grant connect,resource,dba to username;// 授權 grantconnect,resource,dba,sysdba to username;3.connect username
  • Oracle PL/SQL developer勒索病毒再次出現
    最近,國內再次發生多起對Oracle資料庫的勒索病毒,該病毒是2016年底發生的比特幣勒索事件,該病毒通過網絡上下載的破解版PL/SQL developer工具,被黑客利用注入修改了安裝目錄下的fterconnet.sql文件,當使用帶有病毒工具連接資料庫時,假如該連接用戶具有DBA權限,改病毒就會在資料庫上執行創建幾個觸發器和存儲過程
  • oracle常用運維命令整理
    oracle/cfgtoollogs/dbca/SIDNAMEE:/u01/oracle/diag/rdbms/SIDNAMEF:/u01/oracle/product/11.2.0/dbhome_1/dbs/hc_SIDNAME.dat
  • 這是一篇長篇入門級資料庫講解:oracle資料庫數據導入導出步驟
    查詢磁碟空間是否足夠大 執行df -h或者df -H命令進行查詢,若可用空間不足則更換新的目標環境再繼續其他操作。[oracle@orac ~]$ df -h3.賦予用戶權限 因為要用該用戶進行導入操作,故應給予用戶的權限至少包括dba、IMP_FULL_DATABASE權限,也有人建議應與導出資料庫數據時用戶的權限一致。
  • SQL Server、Oracle、DB2一決高下
    \sqlexpress,在SQL Server中,這表示的是一個命名實例的意思。  如果不習慣用命令行,則還可以單獨下載SQL Server Express Management Studio,這也是免費的
  • 掌握oracle恢復秘籍,再也不用害怕刪庫跑路
    廢話不多說了,下面就進入正題,來說說幾種oracleentries=5; SQL> conn sys/oracle as sysdba;ERROR:ORA-01031: insufficient privileges在這裡有人,有疑問,如果這個口令文件丟失,會發生什麼,用戶不能登錄嗎?
  • 使用plsql創建oracle定時器
    工作中,我們使用的資料庫大部分是oracle、mysql、db2、sql server等資料庫,在使用oracle最匹配的工具plsql的時候,如果用plsql創建定時器呢?下面我簡單介紹使用工具創建定時器的方法。