好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MLSQL編譯時權限控制示例詳解

MLSQL編譯時權限控制示例詳解

熱門標簽:昆明電信400電話辦理 電銷機器人各個細節介紹 淄博400電話申請 電話機器人市場趨勢 百度地圖標注后不顯示 溫州瑞安400電話怎么申請 俄國地圖標注app 南昌高頻外呼系統哪家公司做的好 電銷機器人 行業

前言

關于mysql的權限簡單的理解就是mysql允許你做你全力以內的事情,不可以越界。

權限控制,對于MLSQL而言的重要程度可以說是生命線。 MLSQL需要面對各式各樣的資源訪問,比如MySQL, Oracle,HDFS,Hive,Kafka,Sorl,ElasticSearch,Redis,API,Web等等,不同用戶對這些數據源(以及表,列)的權限是不一樣的。

傳統模式是,每個用戶都需要有個proxy user,然后到每個數據源里面給這個proxy user進行授權。 這看起來似乎就是麻煩點,但是在實際操作中,基本是很難執行的,不同的數據源在不同的團隊里面,那么整個申請流程可能要天甚至周計了。
如果上面的問題已經讓人氣餒,那么對于采用Hive做數倉的公司,可能對HIve權限訪問更讓人絕望。Hive的授權模式是跟著Linux用戶走的,也就是Spark啟動用戶是誰,誰就有權限訪問,這個對于多租戶的MLSQL應用來說,則是完全不可行了,比如啟動Spark的是sparkUser,但是真正執行的人,其實可能是張三,李四等等。Hive就無法知道是具體哪個人完成的,只知道是sparkUser。

還有一個大家可能感慨的點:

我們好不容易寫了個腳本,跑了一個小時,突然腳本失敗,一看,第350行那里訪問的數據源權限不足。 這可真是讓人惱火。

問題來了

那么,怎么才能在腳本運行前,就知道腳本里涉及到的資源是不是都被授權了?

答案是:有

題外話:標題不嚴謹,因為MLSQL本質是個解釋性執行語言,不需要編譯,更好的標題是 【解析時權限控制】。

MLSQL如果開啟了權限驗證,他會先掃描整個腳本,然后提取必要的信息,這些信息就包含了各種數據源的詳細信息,從而在運行前就可以知道你是不是訪問了未經授權的庫表。那么MLSQL是怎么做到的呢?我們來看下面的信息:

connect jdbc where
driver="com.mysql.jdbc.Driver"
and url="jdbc:mysql://${ip}:${host}/db1?${MYSQL_URL_PARAMS}"
and user="${user}"
and password="${password}"
as db1_ref;

load jdbc.`db1_ref .people`
as people;

save append people as jdbc.`db1_ref.spam` ;

因為MLSQL要求任何數據源,都需要使用load語句進行加載,在解析load語句時,MLSQL知道,用戶現在要訪問的是基于JDBC協議的數據源訪問,他通過url拿到了這些信息:

db: db1
table: people
operateType: load
sourceType: mysql
tableType: JDBC

當然,這個腳本用戶還會寫入一張spam表,也一樣會被提取信息:

db: db1
table: people
operateType: save
sourceType: mysql
tableType: JDBC

然后還有一張臨時表people,所以這個腳本總共有三張表信息,之后這些信息會被發送到AuthCenter里進行判斷,AuthCenter會告訴MLSQL那張表是沒有對當前用戶授權的,如果發現未經授權的表,MLSQL會直接拋出異常。整個過程中,完全不會執行任何物理計劃,只是對腳本的信息抽取。

在MLSQL中,我們不能在select語句里訪問hive表,只能通過load語句加載,比如下面的句子會報錯:

select * from public.abc as table1;

我們無權在select語句中訪問public.abc庫,如果需要使用,你可以通過如下方式完成:

load hive.`public.abc ` as abc;
select * from abc as table1;

如何實現列級別控制

MLSQL在解析load語句的時候,會詢問當前用戶訪問的表,有哪些列是被授權的,然后會改寫最后load的語句,提供一個新的視圖,該視圖只有用戶被授權的列。

總結

MLSQL通過一些有效的限制,可以在語法解析層面直接提取了所有數據源相關信息,并且將其發送給到配套的權限中心進行判斷,避免在運行時發現授權拒絕問題。MLSQL此舉意義重大,使得MLSQL系統不再完全依賴于底層系統的權限控制,從而讓問題得到了極大的簡化。

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • MySQL數據庫遠程訪問權限如何打開(兩種方法)
  • MySQL數據庫設置遠程訪問權限方法小結
  • mysql 新增、刪除用戶和權限分配
  • MySQL創建用戶與授權及撤銷用戶權限方法
  • MYSQL設置觸發器權限問題的解決方法
  • CentOS MySQL 5.7編譯安裝步驟詳細說明
  • Linux下編譯安裝Mysql 5.5的簡單步驟
  • centos下編譯安裝mysql報錯解決方案

標簽:嘉峪關 吐魯番 洛陽 葫蘆島 安徽 甘南 拉薩 海口

巨人網絡通訊聲明:本文標題《MLSQL編譯時權限控制示例詳解》,本文關鍵詞  MLSQL,編譯,時,權限,控制,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MLSQL編譯時權限控制示例詳解》相關的同類信息!
  • 本頁收集關于MLSQL編譯時權限控制示例詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 日韩蜜桃在线观看不卡| 欧美一区二区三区不卡| 亚洲色综合区小说区| 91在线涩涩| 国产凹凸在线一区二区色老头| 9 1免费版看片| 又爽又高潮粉色视频在线播放| lubuntu线路检测3| 美女自抠| 91人妻丨PORNY丨绿帽| 人妻人人做人做人人爱双色球| 国产?高潮?白浆?喷水| 久久久精品人妻一区二区三区四| 第159章别墅贵妇吞巨大小说| 被捆私密憋尿处被棉花堵故事| 国产91无人在线传媒| 午夜精品A片一区二区三区电影网| 国产99视频精品免费视频免里| 女人做全身精油SPA按摩| 一级A爱片免费观看| 给我一个可以看片的www| 一级闷骚少妇A片| 欧美日韩国产人妻无码动图| 97狠狠色丁香婷婷综合久久| cos小黄站在线| 欧美人与人动人物XXX| 两座巨峰喷奶水h| 亚洲美女毛茸茸的撒尿| 我和黑帮老大的是365天第1部| 久久久久久精品人妻aⅴ东京热| 国产精品免费精品一区| 午夜av污污污羞羞影院| 护士好紧好爽再搔一点浪一点| 私人健身教练肉肉h文| 亚洲精品ww久久久久久P站| 日本无码亚洲精品无码电影 | 晚上睡不着觉看b站软件| 美女扒开腿让男生捅| 国产做受91???高潮| 男人桶女人的屁股app| les大尺度在线电影|