校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MySQL存儲過程的權限問題小結

MySQL存儲過程的權限問題小結

熱門標簽:深圳 承德電腦地圖標注 合肥營銷外呼系統收費 商家地圖標注哪個好 地圖標注賺錢真假 外呼系統從哪買 陜西400電話如何申請 遵義地圖標注app 德惠市地圖標注

MySQL的存儲過程,沒錯,看起來好生僻的使用場景。問題源于一個開發同學提交了權限申請的工單,需要開通一些權限。

本來是一個很正常的操作,但在我來看是比較著急且緊迫的,說來慚愧,忙著方向規劃和開發的事情,這個基礎的操作功能竟然給忽略了,所以看到目前的一些實現方式,還是希望能夠做一些細小的事情把這些重復性的工作給解放了。

當然我決定把一些基礎性的工作接過來,一方面是給同事減壓,另一方面是在做一個完整的體驗,因為很多需求和痛點通過實踐是能夠很容易捕捉到重點的,如果我覺得不合理,那么這個過程中勢必會有一些改進的地方。比如部署安裝,比如權限開通。數據庫的權限開通就是一個相對典型的案例,而存儲過程的權限開通甚至都有點讓人懷疑人生了。

問題的場景還是很基礎的,開發同學需要開通一些基礎的權限,在標記權限的時候聲明需要增刪改查的權限,還有DDL的權限,比如drop,alter,create等等。看到這里,我就感覺不太妥了,什么樣的操作竟然需要這么大的權限呢。

簡單聲明了下立場,開發同學的想法是能夠方便管理,于是乎我就直接招過去了,簡單溝通下,其實發現他們的需求場景還是很常規的,他們需要動態創建一些日表,那么需要create權限在評估之后是可以給與的,而對于一般的用戶而言,create的權限是不建議開放的,主要的出發點就是能夠對SQL進行一些基本的審核,哪怕是人工審核還是平臺審核都是一個需要的過程。所以溝通了一圈發現,開通的權限就可以迅速裁剪,對他們而言,修改存儲過程的邏輯也是需要的,因為在一些特定的場景下,他們對邏輯的控制希望能夠更加靈活。

好了,基礎的背景介紹完了。賦予基本的表的權限,賦予存儲過程的權限,存儲過程的這個地方需要注意一個重要的點是SQL SECURITY,默認創建是definer,如果需要開放給其他的用戶調用,則建議是設置為invoker.

所以很簡單的一句:

grant execute,alter procedure on xxx.xxx to xxx@'xxxx'; 

但是很不幸的,開發同學反饋,他們通過SQLyog或者是Navicator打開的時候,竟然看不到存儲過程的內容。

因為我們沒有select procedure或者view procedure的權限,所以我們幾乎再無從干預了。

使用命令行的方式能夠復現出這個問題:

沒有存儲過程的實質性內容。在那兒折騰了好一會,發現是個老問題了,10多年前的老問題了。

https://bugs.mysql.com/bug.php?id=20235

問題的解決其實很簡單,就是需要這樣一句:

grant select on mysql.proc to xxxx@'xxxx'即可 

所以細粒度的權限控制就是這么糾結,但是確實有效。

比如我們舉一反三一下,我們知道MySQL里的all privileges算是一個很大的權限,但是里面包含多少種權限,可能我們沒有清晰的概念。

我們就完全可以通過細粒度的權限控制來反推。

比如創建一個用戶,賦予all privileges的權限。

mysql> grant all privileges on test.* to 'jeanron'@'%' identified by 'jeanron100'; 
Query OK, 0 rows affected, 1 warning (0.00 sec) 

包含的權限如下:

mysql> show grants for jeanron; 
+---------------------------------------------------+ 
| Grants for jeanron@%        | 
+---------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'jeanron'@'%'    | 
| GRANT ALL PRIVILEGES ON `test`.* TO 'jeanron'@'%' | 
+---------------------------------------------------+ 
2 rows in set (0.00 sec) 

我們做一下收縮。

mysql> revoke insert on test.* from jeanron@'%'; 
Query OK, 0 rows affected (0.00 sec) 
喏,all privileges的權限就現出原形了。
mysql> show grants for jeanron; 
| Grants for jeanron@% 
+------------------------------------------------------------------------------------------------------ 
| GRANT USAGE ON *.* TO 'jeanron'@'%' 
| GRANT SELECT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `test`.* TO 'jeanron'@'%' | 

所以在上面的問題中,其實如果select on *.*其實已經包含了我們需要的細粒度權限mysql.proc,如果要抽絲剝繭,基本就是這樣的套路。

補充:下面看下mysql創建存儲過程權限問題

首先,在mysql存儲過程出現的同時,用戶權限也增加了5種,其中和存儲過程有關的權限有 三種:

  • ALTER ROUTINE 編輯或刪除存儲過程
  • CREATE ROUTINE 建立存儲過程
  • EXECUTE 運行存儲過程

在使用GRANT創建用戶的時候分配這三種權限。 存儲過程在運行的時候默認是使用建立者的權限運行的。

需要注意的是在一個用戶擁有建立存儲過程的權限時,如果其沒有對于select、update或delete等權限的話,雖然操作數據的存儲過程可以建立,但調用存儲過程的話仍是無法成功的,會返回權限錯誤,就算擁有運行存儲過程的權限也一樣。所以,如果有人給你建立了一個沒有select、update、delete權限只有CREATE ROUTINE權限的用戶,罵他吧,他是故意的。

當然這樣的用戶建立的存儲過程倒并不是完全不能使用,創建存儲過程中有一個特征子句可以讓存儲過程使用運行者的權限,在建立存儲過程后只要加上SQL SECURITY INVOKER特征子句就可以了。

如下。

 CREATE PROCEDURE p() SQL SECURITY INVOKER 這樣的話就可以分配兩批人,一批給與創建存儲過程的權限,作為開發者,一批給與運行存儲過程和select、update、delete權限,作為測試者。(腦筋秀逗了) 有了這種權限分配,mysql的安全性完全不需要在功能層去保護了,我通過root用戶建立的存儲過程,但是在功能層用一個只擁有運行存儲過程權限的用戶來調用。那么,你就算從功能層上得到數據庫的用戶名和密碼,并且模擬了ip,也不能得到你想要的任何東西。 有了權限,我們可以放心大膽的使用存儲過程,不用擔心安全問題了。

總結

以上所述是小編給大家介紹的MySQL存儲過程的權限問題小結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

您可能感興趣的文章:
  • Mysql修改存儲過程相關權限問題

標簽:商丘 巴中 三門峽 揚州 南陽 新余 貴州 贛州

巨人網絡通訊聲明:本文標題《MySQL存儲過程的權限問題小結》,本文關鍵詞  MySQL,存儲,過程,的,權限,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL存儲過程的權限問題小結》相關的同類信息!
  • 本頁收集關于MySQL存儲過程的權限問題小結的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久蜜桃香蕉精品一区二区三区| 日本成人在线不卡视频| 精品一二三四区| 日韩欧美一级片| 黄色日韩网站视频| 久久免费的精品国产v∧| 国产高清不卡一区二区| 国产精品久久久久久亚洲毛片| 不卡在线视频中文字幕| 亚洲素人一区二区| 欧美日韩国产小视频在线观看| 日韩高清国产一区在线| 欧美成人video| 国产二区国产一区在线观看| 18成人在线观看| 欧美日韩1区2区| 国内外精品视频| 国产精品乱码久久久久久| www.在线成人| 亚洲成人高清在线| 欧美第一区第二区| 风间由美一区二区三区在线观看 | 免费看日韩精品| 精品成人一区二区| 日韩中文字幕不卡| 日韩欧美国产成人一区二区| 国产iv一区二区三区| 午夜天堂影视香蕉久久| 久久免费偷拍视频| 欧美一区二区精品在线| 欧美一级免费大片| 亚洲国产成人高清精品| 丝袜美腿亚洲一区| 国产露脸91国语对白| 欧美一区二区网站| 精品美女被调教视频大全网站| 国产精品色婷婷久久58| 亚洲最新视频在线观看| 久久se精品一区精品二区| 国产成人小视频| 欧美色手机在线观看| 久久天堂av综合合色蜜桃网| 亚洲欧美日韩一区| 精品在线观看视频| 在线观看亚洲成人| 久久综合九色综合97婷婷女人| 亚洲六月丁香色婷婷综合久久 | 在线观看视频一区| 91精品国产一区二区人妖| 久久久国产精品麻豆| 亚洲免费观看高清在线观看| 麻豆精品国产传媒mv男同| 成人av电影在线播放| 在线免费观看一区| 国产午夜精品久久| 日韩电影在线观看电影| 99精品久久久久久| 久久久久久一级片| 蜜臀av一级做a爰片久久| 99久久99久久精品国产片果冻 | 美女精品一区二区| 在线视频国内自拍亚洲视频| 国产欧美视频一区二区| 久久er99精品| 日韩一级片在线播放| 亚洲一区影音先锋| 99精品欧美一区二区三区小说 | 日韩电影一区二区三区| 色婷婷香蕉在线一区二区| 国产午夜精品在线观看| 狠狠色2019综合网| 精品国产污网站| 日av在线不卡| 7777精品伊人久久久大香线蕉| 18欧美亚洲精品| 色综合久久精品| 中文字幕字幕中文在线中不卡视频| 国产精品性做久久久久久| 日韩精品一区二区三区视频 | 国产露脸91国语对白| 欧美电视剧免费全集观看| 日韩成人免费电影| 欧美日韩国产综合一区二区三区 | 日韩午夜在线观看| 七七婷婷婷婷精品国产| 日韩精品自拍偷拍| 极品少妇xxxx精品少妇| 久久久高清一区二区三区| 国产一区二区久久| 欧美高清在线精品一区| 国产中文字幕精品| 久久久精品tv| 91日韩精品一区| 一区二区三区丝袜| 欧美人牲a欧美精品| 蜜臀av一区二区| 久久美女艺术照精彩视频福利播放| 狠狠色丁香婷综合久久| 国产精品国产三级国产普通话三级| 国产成人免费xxxxxxxx| 国产精品不卡在线观看| 在线观看av一区| 免费一级片91| ...中文天堂在线一区| 欧洲在线/亚洲| 激情欧美一区二区| 日韩毛片视频在线看| 欧美日韩aaaaaa| 国产成人免费av在线| 亚洲一二三区在线观看| 精品欧美久久久| 在线影院国内精品| 日韩高清电影一区| 中日韩av电影| 在线成人午夜影院| 成人免费黄色大片| 亚洲一区二区视频| 久久久综合激的五月天| 色网站国产精品| 国产麻豆91精品| 天天综合日日夜夜精品| 国产女人18毛片水真多成人如厕| 欧美性受xxxx| 国产伦精品一区二区三区在线观看| 日韩理论片中文av| 久久人人爽爽爽人久久久| 欧美综合一区二区三区| 国产精品资源在线观看| 亚洲第一久久影院| 国产精品美女久久久久久2018| 制服丝袜av成人在线看| 91影视在线播放| 久久国产精品无码网站| 亚洲线精品一区二区三区| 亚洲国产激情av| 欧美成人vps| 制服丝袜中文字幕一区| 色综合久久综合中文综合网| 久久成人免费电影| 日韩中文字幕av电影| 亚洲人成亚洲人成在线观看图片| 日韩欧美中文字幕公布| 欧美性色黄大片| 日本电影欧美片| 99久久99久久综合| av成人免费在线| 成人午夜在线视频| 懂色中文一区二区在线播放| 看电视剧不卡顿的网站| 日韩黄色小视频| 视频一区免费在线观看| 亚洲国产精品嫩草影院| 一区二区激情视频| 亚洲欧美另类图片小说| 中文字幕不卡在线观看| 久久久影视传媒| 久久女同精品一区二区| 久久久另类综合| 久久久高清一区二区三区| 久久九九久久九九| 久久嫩草精品久久久久| 国产日韩欧美精品综合| 中文字幕二三区不卡| 国产精品网站在线观看| 中文字幕免费不卡| 亚洲人成伊人成综合网小说| 日本不卡一二三区黄网| 久久午夜免费电影| 精品国产一区二区三区久久影院 | 国产精品天天看| 久久综合久久久久88| 久久婷婷国产综合精品青草 | 丁香天五香天堂综合| 国产成人精品免费在线| 国产精品一二三| 97se狠狠狠综合亚洲狠狠| 欧美婷婷六月丁香综合色| 在线电影国产精品| 久久青草国产手机看片福利盒子| 国产欧美日韩亚州综合 | 亚洲欧洲av一区二区三区久久| 亚洲欧洲韩国日本视频| 亚洲午夜国产一区99re久久| 蜜臀av性久久久久蜜臀aⅴ流畅 | 一区二区三区在线视频观看58| 一区二区在线观看免费| 日韩中文字幕一区二区三区| 久久成人18免费观看| 99久久久久久99| 6080午夜不卡| 国产女主播在线一区二区| 亚洲综合视频网| 久久av中文字幕片| 91在线一区二区| 欧美一区二区三区视频在线| 亚洲欧洲美洲综合色网| 麻豆精品蜜桃视频网站| 色8久久精品久久久久久蜜| 日韩视频免费直播| 日韩理论电影院|