MariaDB/MySQL之用户管理及忘记数据管理员密码解决办法

   在MariaDB/MySQL当中,对用户进行分类管理,以及对不同类别的用户对不同的数据拥有不同的权限是非常有必要的,这样可以极大的增加数据的安全性。

   一、用户账号

       1、我们可以直接创建用户账:

mysql>create user username@‘hostname‘ [identified by [password]‘your_passwd‘]
//使用password关键字的话,可以加密密码

       2、 也可以在授权的时候创建用户帐户:

mysql>grant all on *.* to username@‘hostname‘ indentified by [password]‘your_passwd‘
//把所有用户的权限授予username@‘hostname‘,密码是your_passwd

3、 如果需要更改用户名和密码的话:

mysql>rename user old_name@‘old_host‘ to new_name@‘new_host‘
 //更改用户名
mysql>set password for user_name@‘host‘=password(‘new_passwd‘)
//修改密码

二、授权及取消授权

1、授权

GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [TABLE|FUNCTION|PROCEDURE] priv_level
TO username@hostname [IDENTIFIED BY ‘password‘], [username@hostname [],...]
            [REQUIRE SSL]
            [WITH with_option ...]
//priv_type #权限类型,如all、select、update等
//priv_level #权限有效范围,可以使用一下方式限定:
       *
       *.*
       db_name.*
       db_name.tbl_name
       tbl_name
       db_name.routine_name
//WITH with_option #附加选项,有:
    MAX_QUERIES_PER_HOUR count #每小时最大查询频率
    MAX_UPDATES_PER_HOUR count #每小时最大更新频率
    MAX_CONNECTIONS_PER_HOUR count  #每小时最大连接次数
 一   MAX_USER_CONNECTIONS count #用户最大连接次数

2、取消授权

方式一
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ... ON [object_type] priv_level FROM user [, user] ...
方式二
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...


三、权限类别

1、管理类

CREATE TEMPORARY TABLES
创建临时表
CREATE USER创建用户
FILE可以在服务器读写文件
SUPER可以管理其他权限
SHOW DATABASES可以使用show databases查看所有数据库
RELOAD可以使用刷新(使用flush和Reset)
SHUTDOWN可以使用shutdown
REPLICATION [SLAVE | CLIENT]主从同步时,从服务器可以从主服务器上读取binarylog | 用户可以进行主从同步
LOCK TABLES可以锁表
PROCESS可以查看当前用户执行sql的情况

     2、库级别和表级别类

ALTER
可以使用alter
ALTER ROUTINE可以使用alter routine
CREATE创建库和表
CREATE ROUTINE可以使用create routine
CREATE VIEW创建视图
SHOW VIEW可以使用show view查看视图
EXECUTE可以执行存储过程、函数
GRNAT OPTION授予其他用户权限
INDEX可以创建、删除索引
DROP可以删除表、库、视图

       3、数据操作类权限

SELECT
查询
INSERT插入
UPDATE更新
DELETE删除

4、字段级别权限

SELECT(col1,...)
UPDATE(col1,...)
INSERT(col1,...)

   另外,all表示所有权限。

四、与用户授权相关的表

   mysql数据库中有几个表与用户授权相关

db
库级别权限
host主机级别权限,已废弃
tables_priv表级别权限
colomns_priv列级别的权限
procs_priv存储过程和存储函数相关的权限
proxies_priv代理用户权限




MySQL忘记管理员密码的解决办法

   只需要在启动脚本的start中添加:

       --skip-grant-table  

   但是同时为了安全,这时候是不应该使用网络的,所以还要添加:

       --skip-networking

   然后启动MySQL,进入使用update修改密码即可。

   最后,退出MySQL,并把启动脚本恢复原状就可。


MariaDB/MySQL之用户管理及忘记数据管理员密码解决办法,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。