mysql创设用户与远程登入

mysql创建用户与远程登入

一、新建用户

1、新建用户

//登录MYSQL
??????? @>mysql -u root -h localhost -ppassword
?//修改用户授权表创建用户
?????? mysql> insert into mysql.user?(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values(“localhost”,”pppadmin”,password(“passwd”),”,”,”);
//刷新系统权限表
???????mysql>flush privileges;
这样就创建了一个名为:phplamp?? 密码为:passwd的用户。
//使用新用户登录
?????? mysql>exit;
?????? @>mysql -u phplamp -ppasswd
?????? mysql>登录成功

?

还可以直接使用GRANT进行用户创建并授权

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

?????? ?->???? ON bankaccount.*

??????? ->???? TO
‘custom’@’localhost’

?????? ?->???? IDENTIFIED BY ‘obscure’;

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

??????? ->???? ON expenses.*

?????? ?->???? TO
‘custom’@’whitehouse.gov’

??????? ->???? IDENTIFIED BY ‘obscure’;

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

?????? ?->???? ON customer.*

??????? ->???? TO
‘custom’@’server.domain’

??????? ->???? IDENTIFIED BY ‘obscure’;

这3个账户可以用于:

??????? ·?????? 第1个账户可以访问bankaccount数据库,但只能从本机访问。

??????? ·???????第2个账户可以访问expenses数据库,但只能从主机whitehouse.gov访问。

??????? ·???????第3个账户可以访问customer数据库,但只能从主机server.domain访问。


2、为用户授权

2.1? 授权原则

????? a.只有root用户拥有授权表的改写权;

????? b.不要把授权表的改写权授予除root用户之外的其它用户(当然,如果你可以用另一个用户代替root用户进行管理,以增加安全性)。因为这样,用户可以通过改写授权表而推翻现有的权限。产生安全漏洞。

????? c.一般情况下,你可能不会犯这个错误,但是在安装新的分发, 初始授权表之后。这个漏洞是存在的,如果你不了解这时授权表的内容你可能会犯错误。

????? d.在Unix(Linux)上,在按照手册的指令安装好MySQL后,你必须运行mysql_install_db脚本建立包含授权表的mysql数据库和初始权限。在Windows上,运行分发中的Setup程序初始化数据目录和mysql数据库。假定服务器也在运行。

2.2? 建议

????? a.一般地,建议你删除匿名用户记录:

???????????????? mysql> DELETE FROM user WHERE User=””;

????????匿名访问被授予用户可从本地连接名为test和任何名字以test_开始的数据库。匿名用户可对数据库做任何事情,但无管理权限。

??????? 更进一步,同时删除其他授权表中的任何匿名用户,有User列的表有db、tables_priv和columns_priv。

????? b.要给root用户设置密码。

????? c.对所有MySQL用户使用口令。

?????????? 如果other_user没有口令,任何人能简单地用mysql -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑 mysql_install_db脚本改变所有用户的口令,或仅仅MySQL root的口令,象这样:

????? shell> mysql -u root mysql

????? mysql> UPDATE user SET Password=PASSWORD(‘new_password’)

?????????????-> WHERE user=’root’;

??????mysql> FLUSH PRIVILEGES;


//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.

????? @>mysql -u root -p密码

mysql创设用户与远程登入

相关文章:

你感兴趣的文章:

标签云: