oracle建立第三方數據接口表,指定特定用戶訪問某張表

/*****建立用戶並指定操做哪張表開始******/
--1.建立用戶並設置默認表空間
CREATE USER CHENGDWY IDENTIFIED BY CHENGDWY DEFAULT TABLESPACE CFWL QUOTA UNLIMITED ON CFWL;
--DROP USER CHENGDWY CASCADE; --刪除用戶
--2.授予CHENGDWY用戶建立session的權限,即登錄權限
GRANT CONNECT TO CHENGDWY;
ALTER USER CHENGDWY DEFAULT ROLE NONE;
GRANT CREATE SESSION TO CHENGDWY;
--3.授予CHENGDWY用戶使用表空間的權限
GRANT UNLIMITED TABLESPACE TO CHENGDWY;
--4.給用戶受權能夠查看、插入、更新某張表的數據
GRANT
  SELECT ON QICHSJ TO CHENGDWY; --授予查看錶QICHSJ的權限
GRANT INSERT ON QICHSJ TO CHENGDWY; --授予插入表QICHSJ的權限
GRANT UPDATE ON QICHSJ TO CHENGDWY; --授予修改表QICHSJ的權限
GRANT
  SELECT ON GUIDHSJ TO CHENGDWY; --授予查看錶guidhsj的權限
GRANT INSERT ON GUIDHSJ TO CHENGDWY; --授予插入表guidhsj的權限
GRANT UPDATE ON GUIDHSJ TO CHENGDWY; --授予修改表guidhsj的權限
--5.登陸新建立的用戶,查看受權是否成功
SELECT * FROM CFWL.QICHSJ Q; --成功
SELECT * FROM QICHSJ Q; --失敗,報:表或視圖不存在!
SELECT * FROM CFWL.GUIDHSJ G; --成功
SELECT * FROM GUIDHSJ G; --失敗,報:表或視圖不存在!
--6.給新建立的用戶受權能夠建立同義詞
GRANT CREATE SYNONYM TO CHENGDWY;
--7.使用新建立的用戶建立同義詞供對方公司訪問,解決上面報的錯
CREATE SYNONYM TB_QICHSJ FOR CFWL.QICHSJ;--CFWL是建立用戶的帳號,須根據實際進行修改
CREATE SYNONYM TB_GUIDHSJ FOR CFWL.GUIDHSJ;
--SELECT * FROM USER_SYNONYMS; --查看當前用戶下的同義詞
--8.在此登陸新建立的用戶查詢受權是否成功
SELECT * FROM CFWL.TB_QICHSJ Q; --成功
SELECT * FROM TB_GUIDHSJ G; --成功
--9.限制第三方鏈接數據庫的鏈接數
SHOW PARAMETER RESOURCE; --查看數據庫鏈接數限制是否打開,此語句需在SQL*Plus下執行
ALTER SYSTEM SET RESOURCE_LIMIT = TRUE; --修改數據庫鏈接數限制爲打開狀態,此語句選在SQL*Plus下執行
--新建profile, 初始限制爲1 ,用於測試。
CREATE PROFILE CHENGDWY_PROFILE LIMIT SESSIONS_PER_USER 1 FAILED_LOGIN_ATTEMPTS UNLIMITED;
--將建立的數據庫鏈接數限制賦給用戶
ALTER USER CHENGDWY PROFILE CHENGDWY_PROFILE;
--將會話數調整到30
ALTER PROFILE CHENGDWY_PROFILE LIMIT SESSIONS_PER_USER 30; 
--DROP PROFILE CHENGDWY_PROFILE CASCADE; --刪除用戶鏈接數據庫限制
/*****建立用戶並指定操做哪張表結束******/

相關SQL語句html

--查看全部用戶會話信息
SELECT * FROM V$SESSION;
SELECT SID, LOGON_TIME, USERNAME, MACHINE FROM V$SESSION;
--查看全部用戶鏈接信息
SELECT S.USERNAME,
       S.OSUSER,
       S.PROGRAM,
       S.MACHINE,
       S.SID,
       S.SERIAL#,
       P.SPID,
       'alter system kill session ' || '''' || TRIM(S.SID) || ',' ||
       TRIM(S.SERIAL#) || ''';'
  FROM V$SESSION S, V$PROCESS P
 WHERE S.PADDR = P.ADDR
   AND S.USERNAME IS NOT NULL;
--斷開已鏈接的用戶
SELECT SID, SERIAL# FROM V$SESSION WHERE USERNAME = 'CHENGDWY';
ALTER SYSTEM KILL SESSION '152, 189';

SQL*Plus執行結果:數據庫

參考文檔:session

http://blog.csdn.net/lixi292/article/details/7029915測試

http://blog.sina.com.cn/s/blog_5695d9a901013ji7.htmlui

http://database.51cto.com/art/201010/231887.htmspa

http://www.cnblogs.com/liuyou/archive/2011/10/20/2219624.html.net

相關文章
相關標籤/搜索