重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1,Mysql下创建新的用户
10年积累的网站建设、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有李沧免费网站建设让你可以放心的选择与我们合作。
语法:
1.create user 用户名 identified by '密码';
例:create user xiaogang identified by '123456';
新创建的用户,默认情况下是没有任何权限的。
2. 如何给用户分配权限
语法:
1.grant 权限 on 数据库.数据表 to '用户' @ '主机名';
例:给 xiaogang 分配所有的权限
grant all on *.* to 'xiaogang'@'%';
这个时候 xiaogang 就拥有了 所有权限了
3 如何更精准的控制用户的权限呢?
1.grant 权限 on 数据库.数据表 to '用户' @ '主机名';
例:让 xiaogang 有查询 tmp 数据库 tmp1 表的权限;
grant select on temp.temp1 to 'xiaogang'@'%'; //这个时候 xiaogang 就具有查询temp小的temp1的权限了。
当权限1,权限2
mysql grant 权限1,权限2,…权限n on 名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;
权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。
1、创建新用户
通过root用户登录之后创建
grant all privileges on *.* to testuser@localhost identified by "123456" ;//创建新用户,用户名为testuser,密码为123456 ;
grant all privileges on *.* to testuser@localhost identified by "123456" ;//设置用户testuser,可以在本地访问mysql
grant all privileges on *.* to testuser@"%" identified by "123456" ; //设置用户testuser,可以在远程访问mysql
flush privileges ;//mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效
2、设置用户访问数据库权限
grant all privileges on test_db.* to testuser@localhost identified by "123456" ;//设置用户testuser,只能访问数据库test_db,其他数据库均不能访问 ;
grant all privileges on *.* to testuser@localhost identified by "123456" ;//设置用户testuser,可以访问mysql上的所有数据库 ;
grant all privileges on test_db.user_infor to testuser@localhost identified by "123456" ;//设置用户testuser,只能访问数据库test_db的表user_infor,数据库中的其他表均不能访问 ;
3、设置用户操作权限
grant all privileges on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION ;//设置用户testuser,拥有所有的操作权限,也就是管理员 ;
grant select on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION ;//设置用户testuser,只拥有【查询】操作权限 ;
grant select,insert on *.* to testuser@localhost identified by "123456" ;//设置用户testuser,只拥有【查询\插入】操作权限 ;
grant select,insert,update,delete on *.* to testuser@localhost identified by "123456" ;//设置用户testuser,只拥有【查询\插入】操作权限 ;
REVOKE select,insert ON what FROM testuser//取消用户testuser的【查询\插入】操作权限 ;
可以用phpMyAdmin通过输入语句的方法建立用户,或者一般的图形界面的SQL管理程序也可以建立和编辑用户.
这里只说使用GRANT语句的方法,当然还有直接修改MySQL表的方法,不过很麻烦,用的人不多~
前提是有MySQL root权限
例子:建立另一个超级用户(所有权限)的方法
GRANT ALL ON *.* TO username@localhost IDENTIFIED BY 'password' WITH GRANT OPTION
localhost是主机名,也可以是IP,用于限定这个用户是否可以远程连接.还可以用通配符"%",比如%.im286.com,或者202.97.224.%
*.* 中第一个星星是数据库名(*为所有数据库),第二个星星是表名(*为前面数据库下的所有表)
ALL 是指全部语句的操作权限(经常看到虚拟主机等的用户没有DROP权限,就是这里做了手脚)
语法大概就是这样吧.