MariaDB数据库用户和权限管理
mysql
----------------------------------------------------------------------------------------------------------------------------------------
sql
一、元数据数据库:mysql数据库
系统受权表:转到mysql数据库下,show tables;语句查看vim
db,host,useride
columns_priv, tables_priv, procs_priv, proxies_priv函数
二、用户管理spa
(1)建立用户命令行
CREATE USER 'USERNAME'@'HOST' [IDENTIFIED BY 'password'];3d
默认权限:USAGEblog
格式:'USERNAME'@'HOST',其中HOST有:
主机名、IP地址或者Network、通配符方式:%,172.16.%.%
建立用户示例
(2)重命名
RENAME USER 'old_user_name'@'HOST' TO 'new_user_name'@'HOST'
(3)删除用户
DROP USER 'USERNAME'@'HOST'
(4)修改密码
进入数据库,输入SQL语句
<1>mysql> SET PASSWORD FOR 'user'@'HOST' = PASSWORD('password')
<2>mysql> UPDATE mysql.user SET password=PASSWORD('password') WHERE 条件从句;
此方法须要结束后输入flush privileges;进行刷新才会生效
<3>LINUX命令行:mysqladmin -u USER -pOLDPASS password 'NEWPASSWORD'
(5)忘记管理员密码的解决办法
<1>中止mysql服务,vim /etc/mysqld,为其使用以下选项:skip-grant-tables、skip-networking
<2>开启mysql服务,使用UPDATE命令修改管理员密码
UPDATE mysql.user as mu SET password=PASSWORD('rootpwd') WHERE mu.user='root';
<3>关闭mysqld进程,移除上述两个选项,重启mysqld
三、MySQL权限管理
权限类别:管理类、程序类、数据库级别、表级别、字段级别
四、受权和回收权限
(1)受权SQL语句
GRANT pri_type on obj_type pri_level TO 'user'@'host' [IDENTIFIED BY 'password'] [WITH GRANT OPTION]
pri_type:ALL全部权限,或者select(col1)、insert(col1,col2)等权限
obj_type:表、函数或者存储过程
pri_level:*全部库、*.*全部库的全部表、db_name.*某个数据库的全部表、
db_name.routine_name指定某个数据库的函数存储过程或者触发器
WITH GRANT OPTION:能够将一样的权限受权给其余用户
示例:GRANT SELECT (name), INSERT (name,age) ON mydb.mytbl TO 'someuser'@'somehost‘;
IDENTIFIED BY 'password'加剧加颜色是由于,咱们可使用这句话来建立用户,并赋予权限,一条命令即可执行,不用两条,例如:GRANT SELECT (user,host) ON
mysql.user TO 'test5'@'localhost' WITH GRANT OPTION ;
(2)取消受权
REVOKE pri_type on obj_type pri_level FROM 'user'@'host'
(3)查看指定用户得到的受权
Help SHOW GRANTS
SHOW GRANTS FOR 'user'@'host';
SHOW GRANTS FOR CURRENT_USER[()];
注意:MariaDB服务进程启动时会读取mysql库中全部受权表至内存
(1) GRANT或REVOKE等执行权限操做会保存于系统表中,MariaDB的服务进程一般会自动重读受权表,使之生效
(2) 对于不可以或不能及时重读受权表的命令,可手动让MariaDB的服务进程重读受权表:mysql> FLUSH PRIVILEGES;