
这里只说使用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权限,就是这里做了手脚)
语法大概就是这样吧.
创建新的用户名和密码create
user
username
identified
by
password
给用户分配权限
GRANT
privileges
ON
databasename.tablename
TO
'username'@'host'
grant
all
privileges
on
*.*
to
'username'@'localhost'
identified
by
'password'
删除权限
REVOKE
ALL
PRIVILEGES
ON
*.*
FROM
'username'@'localhost'
分配指定库的权限
GRANT
ALL
PRIVILEGES
ON
database1.*
TO
'username'@'localhost'
IDENTIFIED
BY
'password'
分配指定 *** 作的权限
GRANT
SELECT,
UPDATE
ON
database1.*
TO
'username'@'localhost'
IDENTIFIED
BY
'password'
刷新权限
FLUSH
PRIVILEGES
删除用户
DROP
USER
username@localhost
设置默认的编码
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示
character_set_server=utf8
init_connect='SET
NAMES
utf8'
重启mysql
systemctl
restart
mysqld
更新用户的密码
SET
PASSWORD
FOR
'username'@'localhost'
=
PASSWORD("123456")
用ROOT账户登陆(有权限对整个数据库 *** 作的账户)点权限设置,然后添加一用户 。在Database for user 那里选择Create database with same name and grant all privileges 如果只是想指定它对其中一数据库有管理权限就不要选择全局权限中的任何一项 ,点执行 完成创建 ,下面就是新建一数据库,在点权限设置 ,在“按数据库指定权限”那里把你刚新建的数据库选择上,点执行就可以了!这样你新建的账户只对该数据库有完全控制的权限,对其他用户也没访问权限!欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)