搜尋
首頁資料庫mysql教程MySQL的权限系统简析_MySQL

bitsCN.com
MySQL的权限系统简析 create user 'liub'@'localhost' identified by 'liub'   create table g_user(id varchar(10),username varchar(20),userpwd varchar(20));insert into g_user values ('1','liub','liub');insert into g_user values ('2','lik','lik'); mysql.usermysql.dbmysql.tables_privmysql.columns_priv   select * from g_user;-- 列级权限grant select(id,username) on g_user to 'liub'@'localhost';-- 表级权限grant select on g_user to 'liub'@'localhost';-- 库级权限grant select on test.* to 'liub'@'localhost'; show grants for 'liub'@'localhost'; select * from columns_privselect * from tables_privselect * from dbuse test    grant insert on g_user to 'liub'@'localhost' select * from mysql.userflush privileges; show grants for 'liub'@'localhost'        MySQL 的权限系统在实现上比较简单,相关权限信息主要存储在几个被称为grant tables 的系统表中,即: mysql.User,mysql.db,mysql.Host,mysql.table_priv 和mysql.column_priv。由于权限信息数据量比较小,而且访问又非常频繁,所以Mysql 在启动的时候,就会将所有的权限信息都Load 到内存中保存在几个特定的结构中。所以才有我们每次手工修改了权限相关的表之后,都需要执行FLUSH PRIVILEGES命令重新加载MySQL的权限信息。当然,如果我们通过GRANT,REVOKE 或者DROP USER 命令来修改相关权限,则不需要手工执行FLUSH PRIVILEGES 命令,因为通过GRANT,REVOKE 或者DROP USER 命令所做的权限修改在修改系统表的同时也会更新内存结构中的权限信息。在MySQL5.0.2 或更高版本的时候,MySQL 还增加了CREATE USER 命令,以此创建无任何特别权限(仅拥有初始USAGE权限)的用户,通过CREATE USER 命令创建新了新用户之后,新用户的信息也会自动更新到内存结构中。所以,建议读者一般情况下尽量使用GRANT,REVOKE,CREATE USER 以及DROPUSER 命令来进行用户和权限的变更操作,尽量减少直接修改grant tables 来实现用户和权限变更的操作。show grants for 'income'@'%' Global LevelGRANT SELECT,UPDATE,DELETE,INSERT ON *.* TO 'def'@'localhost'; 在验证所有所需权限的时候,MySQL 首先会查找存储在内存结构中的权限数据,首先查找Global Level 权限,如果所需权限在Global Level 都有定义(GRANT 或者REVOKE),则完成权限校验(通过或者拒绝),如果没有找到所有权限的定义,则会继续往后查找Database Level 权限,进行Global Level 未定义的所需权限的校验,如果仍然没有能够找到所有所需权限的定义,MySQL 会继续往更小范围的权限定义域查找,也就是TableLevel,最后则是Column Level 或者Routine Level。    
MySQL的权限系统简析_MySQL
 一, 创建用户:       命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';        说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.       例子:    CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';               CREATE USER 'pig'@'192.168.1.101' IDENDIFIED BY '123456';               CREATE USER 'pig'@'%' IDENTIFIED BY '123456';               CREATE USER 'pig'@'%' IDENTIFIED BY '';               CREATE USER 'pig'@'%';二,授权:      命令:GRANT privileges ON databasename.tablename TO 'username'@'host'      说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.       例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';               GRANT ALL ON *.* TO 'pig'@'%';       注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:           GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;   三.设置与更改用户密码      命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");      例子: SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456"); 四.撤销用户权限       命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';     说明: privilege, databasename, tablename - 同授权部分.      例子: REVOKE SELECT ON *.* FROM 'pig'@'%';      注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限.          具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看. 五.删除用户      命令: DROP USER 'username'@'host';  作者 bengda bitsCN.com

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
SAP系统的五大模块是什么SAP系统的五大模块是什么Sep 29, 2022 am 11:52 AM

SAP五大模块是:1、物料管理模块,主要有采购、库房与库存管理、供应商评价等管理功能;2、工厂维护模块,提供对定期维护、检查与服务管理的规划、控制和处理;3、质量管理模块,可提供质量计划、质量检测、质量控制、质量文档等功能;4、销售与分销模块,包括销售计划、询价报价、订单管理、运输发货、发票等的管理;5、生产计划模块,可实现对工厂数据、生产计划、能力计划、成本核算等的管理。

操作系统实现按名存取的关键在于解决什么操作系统实现按名存取的关键在于解决什么Aug 17, 2022 am 11:17 AM

操作系统实现按名存取的关键在于解决文件名称与具体的物理地址的转换;实现逻辑文件到物理文件间的转换,即按名存取外存上的文件,按名存取实现文件的共享和保密,不同用户能在系统的控制下共享其他用户的文件。

los是什么系统los是什么系统Nov 07, 2022 pm 04:31 PM

los就是LineageOS,是一个基于Android面向智能手机以及平板电脑的开放源代码操作系统。los的前身为Cyanogenmod,通常称CM,是全球最大的安卓第三方编译团队,促进了用户的安卓版本的第三方升级,在早期曾经先于谷歌为很多手机定制了稳定版的安卓1.6,此后该团队的联合创始人及核心团队,重组了全新的LineageOS,继续为用户提供免费的第三方系统支持。

荣耀手机是什么系统荣耀手机是什么系统Jul 27, 2022 am 10:23 AM

荣耀手机使用的是“Magic UI”、“EMUI”和“HarmonyOS”操作系统;荣耀的新机型采用的都是“Magic UI”系统,旧机型普遍使用的是基于安卓的EMUI系统,而部分机型支持升级为华为研发的HarmonyOS操作系统。

funtouch os是什么系统funtouch os是什么系统Aug 22, 2022 am 11:43 AM

“funtouch os”是vivo基于安卓系统开发的智能手机操作系统;“funtouch os”是针对vivo公司中高端手机推出的一款人性化手机操作系统,该系统与2013年10月发布,以用户体验为核心,以简约、乐趣、智慧、理念为设计导向。

如何查看电脑系统是什么版本如何查看电脑系统是什么版本Jan 02, 2021 pm 03:54 PM

方法:1、在电脑桌面上,右击“计算机”,选择“属性”;2、在“系统”界面的“windows 版本”区域即可查看当前系统版本。2、使用“Win+R”快捷键,打开“运行”窗口,输入“winver”回车,在弹出的对话框中即可查看当前系统版本信息。

三星手机是什么系统三星手机是什么系统Nov 16, 2022 pm 05:22 PM

三星手机是安卓系统,只不过不是原生的安卓系统,而是原生安卓系统经过定制之后的系统,例如OneUI。OneUI是在2018年三星开发者大会上推出的全新基于安卓系统深度定制的用户界面,是三星和google合作进行研发的;可以同时运行在折叠屏产品上和非折叠屏产品上,通过交互的改进让两种不同形态的产品都有相近的操作体验。

系统bage是什么意思系统bage是什么意思Nov 09, 2022 pm 02:40 PM

系统bage就是指系统bug;bug原意是“臭虫”,现可用来指代计算机上存在的漏洞,原因是系统安全策略上存在的缺陷,有攻击者能够在未授权的情况下访问的危害;广义上,bug可用作形容各领域范围内出现的漏洞或缺陷。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),