您好,登录后才能下订单哦!
本篇内容介绍了“MySQL数据库授权的原则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
服务器重新启动的情况
当mysqld启动时,所有的授权表内容被读进存储器并且从那时开始生效。
被服务器立即应用的情况
用GRANT、REVOKE或SETPASSWORD对授权表施行的修改会立即被服务器注意到。
直接修改授权表的情况
如果你手工地修改授权表(使用INSERT、UPDATE等等),你应该执行一个FLUSHPRIVILEGES语句或运行mysqladminflush-privileges告诉服务器再装载授权表,否则你的改变将不生效,除非你重启服务器。
对现有客户连接的影响情况
当服务器注意到授权表被改变了时,现存的客户连接有如下影响:
表和列权限在客户的下一次请求时生效。数据库权限改变在下一个USEdb_name命令生效。全局权限的改变和口令改变在下一次客户连接时生效。
授权原则
无论怎么小心都难免在给用户授权时留有漏洞,希望下面的内容能给你一些帮助,你一般应该遵守这些规则。
只有root用户拥有授权表的改写权
不要把授权表的改写权授予除root用户之外的其它用户(当然,如果你可以用另一个用户代替root用户进行管理,以增加安全性)。因为这样,用户可以通过改写授权表而推翻现有的权限。产生安全漏洞。
一般情况下,你可能不会犯这个错误,但是在安装新的分发,初始授权表之后。这个漏洞是存在的,如果你不了解这时授权表的内容你可能会犯错误。
MySQL数据库授权有什么原则
在Unix(Linux)上,在按照手册的指令安装好MySQL后,你必须运行mysql_install_db脚本建立包含授权表的mysql数据库和初始权限。在Windows上,运行分发中的Setup程序初始化数据目录和mysql数据库。假定服务器也在运行。
当你第一次在机器上安装MySQL时,mysql数据库中的授权表是这样初始化的:
你可以从本地主机(localhost)上以root连接而不指定口令。root用户拥有所有权限(包括管理权限)并可做任何事情。(顺便说明,MySQL超级用户与Unix超级用户有相同的名字,他们彼此毫无关系。)匿名访问被授予用户可从本地连接名为test和任何名字以test_开始的数据库。匿名用户可对数据库做任何事情,但无管理权限。
一般地,建议你删除匿名用户记录:
mysql>DELETEFROMuserWHEREUser="";
更进一步,同时删除其他授权表中的任何匿名用户,有User列的表有db、tables_priv和columns_priv。
另外要给root用户设置密码。
关于用户、口令及主机的设置
对所有MySQL用户使用口令。
记住,如果other_user没有口令,任何人能简单地用mysql-uother_userdb_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑mysql_install_db脚本改变所有用户的口令,或仅仅MySQLroot的口令,象这样:
shell>mysql-urootmysql
mysql>UPDATEuserSETPassword=PASSWORD('new_password')
->WHEREuser='root';
mysql>FLUSHPRIVILEGES;
“MySQL数据库授权的原则是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。