表列授權
Oracle一直支援對錶的列進行授權,這使得訪問授權細化到列。
並不是所有的DML操作都支援授權到列,只有INSERT、UPDATE和REFERENCES許可權支援到列:
SQL> CREATE TABLE T (ID NUMBER, NAME VARCHAR2(30), AGE NUMBER);
表已建立。
SQL> ALTER TABLE T ADD CONSTRAINT PK_T PRIMARY KEY (ID);
表已更改。
SQL> GRANT SELECT (ID) ON T TO TEST;
GRANT SELECT (ID) ON T TO TEST
*
第 1 行出現錯誤:
ORA-00969: 缺失 ON 關鍵字
SQL> GRANT INSERT (ID, NAME) ON T TO TEST;
授權成功。
SQL> GRANT UPDATE (NAME) ON T TO TEST;
授權成功。
SQL> GRANT DELETE (ID, AGE) ON T TO TEST;
GRANT DELETE (ID, AGE) ON T TO TEST
*
第 1 行出現錯誤:
ORA-00969: 缺失 ON 關鍵字
對於這種授權到列的UPDATE和INSERT,只能操作授權的列,其他的列不能修改:
SQL> CONN TEST/TEST
已連線。
SQL> INSERT INTO YANGTK.T VALUES (1, 'A');
INSERT INTO YANGTK.T VALUES (1, 'A')
*
第 1 行出現錯誤:
ORA-00947: 沒有足夠的值
SQL> INSERT INTO YANGTK.T (ID, NAME) VALUES (1, 'A');
已建立 1 行。
SQL> INSERT INTO YANGTK.T (ID, NAME, AGE) VALUES (2, 'B', 10);
INSERT INTO YANGTK.T (ID, NAME, AGE) VALUES (2, 'B', 10)
*
第 1 行出現錯誤:
ORA-01031: 許可權不足
SQL> UPDATE YANGTK.T SET NAME = 'C' WHERE ID = 1;
已更新 1 行。
SQL> UPDATE YANGTK.T SET ID = 2 WHERE ID = 1;
UPDATE YANGTK.T SET ID = 2 WHERE ID = 1
*
第 1 行出現錯誤:
ORA-01031: 許可權不足
雖然授權到列可以解決部分許可權細化的問題,但是由於不支援SELECT和DELETE,而且使用上存在一些限制,因此並不是解決列訪問許可權的最佳選擇,如果真要實現個別列的許可權控制,應該使用檢視。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-674757/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 授權機制與授權模型研究模型
- 認證授權方案之授權初識
- oracle顯式授權和隱式授權Oracle
- mysql 授權MySql
- oracle授權Oracle
- 認證授權方案之授權揭祕 (上篇)
- ASP.NET Core策略授權和 ABP 授權ASP.NET
- 授權物件許可權後的授權者顯示問題物件
- 【認證與授權】Spring Security的授權流程Spring
- 前端微信授權前端
- Laravel授權策略Laravel
- 授權指令碼指令碼
- 對列授權
- 動態授權
- abp授權原理
- 認證授權
- springcloud Oauth2授權,四種授權型別SpringGCCloudOAuth型別
- 使用java操作ranger,hdfs ranger授權操作,hive ranger授權操作JavaRangerHive
- OAUTH開放授權OAuth
- 微信網頁授權網頁
- Shiro(授權Authorization)
- 微信小程式——授權微信小程式
- 微信授權(Net Mvc)MVC
- 微信授權管理功能
- 微信裡的”授權“
- SpringSecurity之授權SpringGse
- Triggers 授權
- 授權的藝術
- 驗證與授權
- 微信授權登入
- Windows 杜比OEM授權Windows
- 認證授權:IdentityServer4 - 各種授權模式應用IDEServer模式
- 查詢資料庫授權以及授權到期的處理方法資料庫
- DB2許可權與授權DB2
- 波場(Tron)USDT 合約授權(Approve)以及授權轉賬(TransferFrom)APP
- axure rp8授權金鑰 axure rp8授權碼最新
- axure8最新授權碼 axure80授權賬號和金鑰
- 淺談MySQL中授權(grant)和撤銷授權(revoke)用法詳解MySql