成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL存儲過程的權(quán)限問題

數(shù)據(jù)庫 MySQL
MySQL的存儲過程,沒錯(cuò),看起來好生僻的使用場景。問題源于一個(gè)開發(fā)同學(xué)提交了權(quán)限申請的工單,需要開通一些權(quán)限。

[[226334]]

MySQL的存儲過程,沒錯(cuò),看起來好生僻的使用場景。問題源于一個(gè)開發(fā)同學(xué)提交了權(quán)限申請的工單,需要開通一些權(quán)限。

本來是一個(gè)很正常的操作,但在我來看是比較著急且緊迫的,說來慚愧,忙著方向規(guī)劃和開發(fā)的事情,這個(gè)基礎(chǔ)的操作功能竟然給忽略了,所以看到目前的一些實(shí)現(xiàn)方式,還是希望能夠做一些細(xì)小的事情把這些重復(fù)性的工作給解放了。

當(dāng)然我決定把一些基礎(chǔ)性的工作接過來,一方面是給同事減壓,另一方面是在做一個(gè)完整的體驗(yàn),因?yàn)楹芏嘈枨蠛屯袋c(diǎn)通過實(shí)踐是能夠很容易捕捉到重點(diǎn)的,如果我覺得不合理,那么這個(gè)過程中勢必會有一些改進(jìn)的地方。比如部署安裝,比如權(quán)限開通。數(shù)據(jù)庫的權(quán)限開通就是一個(gè)相對典型的案例,而存儲過程的權(quán)限開通甚至都有點(diǎn)讓人懷疑人生了。

問題的場景還是很基礎(chǔ)的,開發(fā)同學(xué)需要開通一些基礎(chǔ)的權(quán)限,在標(biāo)記權(quán)限的時(shí)候聲明需要增刪改查的權(quán)限,還有DDL的權(quán)限,比如drop,alter,create等等??吹竭@里,我就感覺不太妥了,什么樣的操作竟然需要這么大的權(quán)限呢。

簡單聲明了下立場,開發(fā)同學(xué)的想法是能夠方便管理,于是乎我就直接招過去了,簡單溝通下,其實(shí)發(fā)現(xiàn)他們的需求場景還是很常規(guī)的,他們需要動態(tài)創(chuàng)建一些日表,那么需要create權(quán)限在評估之后是可以給與的,而對于一般的用戶而言,create的權(quán)限是不建議開放的,主要的出發(fā)點(diǎn)就是能夠?qū)QL進(jìn)行一些基本的審核,哪怕是人工審核還是平臺審核都是一個(gè)需要的過程。所以溝通了一圈發(fā)現(xiàn),開通的權(quán)限就可以迅速裁剪,對他們而言,修改存儲過程的邏輯也是需要的,因?yàn)樵谝恍┨囟ǖ膱鼍跋?,他們對邏輯的控制希望能夠更加靈活。

好了,基礎(chǔ)的背景介紹完了。賦予基本的表的權(quán)限,賦予存儲過程的權(quán)限,存儲過程的這個(gè)地方需要注意一個(gè)重要的點(diǎn)是SQL SECURITY,默認(rèn)創(chuàng)建是definer,如果需要開放給其他的用戶調(diào)用,則建議是設(shè)置為invoker.

所以很簡單的一句:

 

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

但是很不幸的,開發(fā)同學(xué)反饋,他們通過SQLyog或者是Navicator打開的時(shí)候,竟然看不到存儲過程的內(nèi)容。

因?yàn)槲覀儧]有select procedure或者view procedure的權(quán)限,所以我們幾乎再無從干預(yù)了。

使用命令行的方式能夠復(fù)現(xiàn)出這個(gè)問題:

沒有存儲過程的實(shí)質(zhì)性內(nèi)容。在那兒折騰了好一會,發(fā)現(xiàn)是個(gè)老問題了,10多年前的老問題了。

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

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

 

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

所以細(xì)粒度的權(quán)限控制就是這么糾結(jié),但是確實(shí)有效。

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

我們就完全可以通過細(xì)粒度的權(quán)限控制來反推。

比如創(chuàng)建一個(gè)用戶,賦予all privileges的權(quán)限。

 

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

 

包含的權(quán)限如下:

 

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

 

我們做一下收縮。

 

  1. mysql>  revoke insert on test.* from jeanron@'%' 
  2. Query OK, 0 rows affected (0.00 sec) 

 

喏,all privileges的權(quán)限就現(xiàn)出原形了。

 

  1. mysql> show grants for jeanron;  
  2. | Grants for jeanron@%   
  3. +------------------------------------------------------------------------------------------------------  
  4. GRANT USAGE ON *.* TO 'jeanron'@'%'  
  5.  
  6. GRANT SELECTUPDATEDELETECREATEDROPREFERENCESINDEXALTERCREATE TEMPORARY TABLES, LOCK TABLES, EXECUTECREATE VIEW, SHOW VIEWCREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `test`.* TO 'jeanron'@'%' | 

 

所以在上面的問題中,其實(shí)如果select on *.*其實(shí)已經(jīng)包含了我們需要的細(xì)粒度權(quán)限mysql.proc,如果要抽絲剝繭,基本就是這樣的套路。

責(zé)任編輯:龐桂玉 來源: 楊建榮的學(xué)習(xí)筆記
相關(guān)推薦

2019-01-02 13:03:53

MySQL存儲權(quán)限

2011-05-16 13:15:55

MySQL存儲字符集

2011-07-14 13:38:34

2010-10-09 17:19:50

mysql存儲過程

2010-09-27 15:58:51

SQL存儲過程

2020-11-26 10:33:44

MySQL存儲函數(shù)

2010-06-01 15:09:55

MySQL 存儲過程

2021-10-15 06:43:11

數(shù)據(jù)庫存儲過程

2010-05-19 14:03:41

MySQL 存儲過程

2010-10-08 16:55:44

MySql存儲過程

2010-10-09 16:26:59

mysql存儲過程

2015-06-29 15:12:09

ORACLE賬號權(quán)限用戶權(quán)限

2009-01-19 08:59:04

PHP調(diào)用MySQL存儲過程MySQLi擴(kuò)展

2023-07-27 07:03:24

MySQL存儲SQL

2010-06-07 15:36:36

MySQL存儲過程

2010-11-22 14:47:22

MySQL存儲過程

2010-10-09 17:08:15

MySQL存儲過程

2020-11-02 13:24:49

MySQL數(shù)據(jù)庫存儲

2011-07-20 18:00:15

MySQL數(shù)據(jù)庫字符集

2017-09-01 21:25:45

MySQL存儲過程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 天天天天操| 欧美在线a | 毛片免费观看视频 | 久久久99精品免费观看 | 国产精品久久久久久久午夜片 | 精品视频亚洲 | 成人免费在线小视频 | 激情91 | 欧美日一区二区 | 亚洲精品久久久久久久不卡四虎 | 日韩视频在线免费观看 | 国产不卡一| 久久久久一区 | 亚洲精品一区二区网址 | 成人精品一区二区三区中文字幕 | 欧美做暖暖视频 | 天天操欧美 | 在线播放一区 | 久久久91精品国产一区二区三区 | 国产成视频在线观看 | 青青草一区二区三区 | 国产视频久 | 日本中文在线 | 午夜激情在线 | 综合激情久久 | 日韩一区二区久久 | 国产精品亚洲二区 | 久久久久久国产精品 | 一区二区三区av | 免费视频成人国产精品网站 | 亚洲日本视频 | 亚洲视频在线看 | 欧美中文字幕一区 | 99精品欧美一区二区三区 | 国产精品福利网 | 久久中文字幕在线 | 久久久www成人免费无遮挡大片 | 五十女人一级毛片 | 超碰97免费在线 | 麻豆国产精品777777在线 | 日韩精品一区二区三区四区视频 |