语句:
mysql -u root
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地址
、机器名字
、域名
。也可以用’%'
(百分号必须用单引号,表示从任何地址连接)。
‘连接口令’:
不能为空,否则创建失败。
注:用户地址可以不用单引号,但是连接口令必须用单引号!!!这儿的口令指的就是密码。
例如:
grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87
的用户joe
分配可对数据库vtdc
的employee
表进行select、insert、update、delete、create、drop
等操作的权限,并设定口令为123。
grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87
的用户joe
分配可对数据库 vtdc
中包含的所有表进行所有操作的权限,并设定口令为123。
grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87
的用户 joe
分配可对所有数据库的所有表
进行所有操作的权限,并设定口令为123。
grant all privileges on *.* to joe@localhost identified by ‘123′;
给本机用户 joe
分配可对所有数据库的所有表
进行所有操作的权限,并设定口令为123。
这样设置就已经把joe用户登入密码设置为123了,口令相当于密码
如果遇到了一下的问题 :
SQLException: access denied for @'localhost' (using password: no)
解决办法:
grant all privileges on *.* to joe@localhost identified by '1';
flush privileges;
然后用账户:joe,密码:1 登陆