MariaDB数据库用户和权限管理

                                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.%.%

    建立用户示例1.png

    (2)重命名

    RENAME USER 'old_user_name'@'HOST' TO 'new_user_name'@'HOST'

    (3)删除用户

    DROP USER 'USERNAME'@'HOST'2.png

(4)修改密码

    进入数据库,输入SQL语句

    <1>mysql> SET PASSWORD FOR 'user'@'HOST' = PASSWORD('password')3.png

    <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-networking4.png

    <2>开启mysql服务,使用UPDATE命令修改管理员密码

    UPDATE mysql.user as mu SET password=PASSWORD('rootpwd') WHERE mu.user='root';5.png

    <3>关闭mysqld进程,移除上述两个选项,重启mysqld6.png

三、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 ;7.png

(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[()];8.png

    注意:MariaDB服务进程启动时会读取mysql库中全部受权表至内存

(1) GRANT或REVOKE等执行权限操做会保存于系统表中,MariaDB的服务进程一般会自动重读受权表,使之生效

(2) 对于不可以或不能及时重读受权表的命令,可手动让MariaDB的服务进程重读受权表:mysql> FLUSH PRIVILEGES;

相关文章
相关标签/搜索