小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

mysql – 由GRANT ALL PRIVILEGES混淆*.*(…)WITH GRANT OPTION

 印度阿三17 2019-08-06

通常我通過phpMyAdmin管理我的數(shù)據(jù)庫上的用戶,但由于我在SQLyog或HeidiSQL等獨(dú)立程序中執(zhí)行其他所有操作,因此我希望能夠從這些程序遠(yuǎn)程管理用戶.

>遠(yuǎn)程用戶已經(jīng)擁有SUPER,因?yàn)樵趯⒁晥D從本地?cái)?shù)據(jù)庫復(fù)制到遠(yuǎn)程數(shù)據(jù)庫時(shí)需要它.
>遠(yuǎn)程用戶沒有mysql和目標(biāo)數(shù)據(jù)庫所需的數(shù)據(jù)庫級(jí)權(quán)限,因?yàn)镾UPER沒有給出.

我試過這個(gè)(MySQL版本5.6.23):

GRANT ALL PRIVILEGES ON *.* TO 'UserName'@'myIP' IDENTIFIED BY 'password'
WITH GRANT OPTION

奇怪的是,*.*似乎不起作用.例如:

SELECT USER, HOST, db, select_priv, insert_priv, grant_priv FROM mysql.db
WHERE db="somedatabase"

返回一個(gè)空集.結(jié)果,在該階段,我的遠(yuǎn)程用戶無法向用戶授予權(quán)限(錯(cuò)誤1442).

但是,

SHOW GRANTS FOR 'UserName'@'myIP'

確實(shí)表明了

GRANT ALL PRIVILEGES ON *.* TO ‘UserName’@’myIP’ IDENTIFIED BY
PASSWORD ‘someHash’ WITH GRANT OPTION

為了解決這個(gè)問題,我不得不專門在mysql和somedatabase上進(jìn)行GRANT ALL:

GRANT ALL PRIVILEGES ON mysql.* TO 'UserName'@'myIP' IDENTIFIED BY 'password'
WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON somedatabase.* TO 'UserName'@'myIP' IDENTIFIED BY 'password'
WITH GRANT OPTION;

有人會(huì)有關(guān)于為什么*.*不夠的見解?

解決方法:

我真的不得不考慮這一個(gè).錯(cuò)誤1442影響GRANT命令?

注意MySQL Documentation

Error: 1442 SQLSTATE: HY000 (ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG)

Message: Can’t update table ‘%s’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

如果您使用的是托管主機(jī),則有些人會(huì)使用觸發(fā)器和存儲(chǔ)過程來故意阻止運(yùn)行GRANT命令.

例子:Amazon RDS allows the following:

Q: What privileges are granted to the master user for my DB Instance?

For MySQL, the default privileges for the master user include: create, drop, references, event, alter, delete, index, insert, select, update, create temporary tables, lock tables, trigger, create view, show view, alter routine, create routine, execute, trigger, create user, process, show databases, grant option.

什么補(bǔ)助是不允許的?

> SUPER
> FILE
> SHUTDOWN(見我的帖子what could cause a mysql process to close (clean))
> REPLICATION SLAVE
> REPLICATION CLIENT
>見MySQL Documentation on all the GRANTS

如果您看到錯(cuò)誤1442,那么您的托管公司必須使用一些編寫為存儲(chǔ)過程的代理代碼,或者已創(chuàng)建針對(duì)mysql架構(gòu)的觸發(fā)器以在總線下拋出常規(guī)GRANT命令.從商業(yè)角度來看,他們是這樣做的.

如果亞馬遜RDS允許所有撥款,你能想象造成的破壞嗎?

>如果你有SHUTDOWN,你可以在沒有亞馬遜API的情況下關(guān)閉MySQL RDS實(shí)例
>如果您有REPLICATION SLAVEREPLICATION CLIENT,則可以在Amazon外部設(shè)置Slaves(定義了正確的安全組).
>如果有SUPER,您可以終止連接,軟管二進(jìn)制日志,增加連接限制等.
>如果您有FILE,則可以在MySQL RDS實(shí)例內(nèi)部使用SELECT … INTO OUTFILE創(chuàng)建文件,從外部源創(chuàng)建LOAD DATA … INFILE(同樣,定義了正確的安全組).

因此,您需要閱讀托管公司的文檔,了解它們對(duì)MySQL授權(quán)的限制.如果亞馬遜用RDS做到這一點(diǎn),我相信其他公司會(huì)有相同的協(xié)議.對(duì)于Amazon RDS用戶來說,解決此問題的方法是放棄Amazon RDS并切換到Amazon EC2.

聯(lián)系您的托管公司,看看是否確實(shí)如此.

來源:https://www./content-2-379001.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多