树叶云linux教程:18.3 管理用户以及授权

在生产环境中总不能一直“死啃”root管理员。为了保障数据库系统的安全性,以及让其他用户协同管理数据库,我们可以在MariaDB数据库管理系统中为他们创建多个专用的数据库管理账户,然后再分配合理的权限,以满足他们的工作需求。为此,可使用root管理员登录数据库管理系统,然后按照“CREATE USER 用户名@主机名 IDENTIFIED BY ‘密码’; ”的格式创建数据库管理账户。再次提醒大家,一定不要忘记每条数据库命令后面的分号(;)。

    MariaDB [(none)]> CREATE USER luke@localhost IDENTIFIED BY 'linuxprobe';
    Query OK, 0 rows affected (0.00 sec)

创建的账户信息可以使用select命令语句来查询。下面命令查询的是账户luke的主机名称、账户名称以及经过加密的密码值信息:

    MariaDB [(none)]> use mysql
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Database changed
    MariaDB [mysql]> SELECT HOST,USER,PASSWORD FROM user WHERE USER="luke";
    +-----------+------+-------------------------------------------+
    | host      | user | password                                  |
    +-----------+------+-------------------------------------------+
    | localhost | luke | *55D9962586BE75F4B7D421E6655973DB07D6869F |
    +-----------+------+-------------------------------------------+

不过,用户luke仅仅是一个普通账户,没有数据库的任何操作权限。不信的话,可以切换到luke账户来查询数据库管理系统中当前都有哪些数据库。可以发现,该账户甚至没法查看完整的数据库列表(刚才使用root账户时可以查看到3个数据库列表):

    MariaDB [mysql]> exit
    Bye
    [root@linuxprobe ~]# mysql -u luke -p
    Enter password: 此处输入luke账户的数据库密码
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 6
    Server version: 5.5.35-MariaDB MariaDB Server
    Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    +--------------------+
    1 row in set (0.03 sec)

数据库管理系统所使用的命令一般都比较复杂。我们以grant命令为例进行说明。grant命令用于为账户进行授权,其常见格式如表18-1所示。在使用grant命令时需要写上要赋予的权限、数据库及表单名称,以及对应的账户及主机信息。其实,只要理解了命令中每个字段的功能含义,也就不觉得命令复杂难懂了。

表18-1 GRANT命令的常见格式以及解释

命令作用
GRANT 权限 ON 数据库.表单名称 TO 用户名@主机名对某个特定数据库中的特定表单给予授权
GRANT 权限 ON 数据库.* TO 用户名@主机名对某个特定数据库中的所有表单给予授权
GRANT 权限 ON . TO 用户名@主机名对所有数据库及所有表单给予授权
GRANT 权限1,权限2 ON 数据库.* TO 用户名@主机名对某个数据库中的所有表单给予多个授权
GRANT ALL PRIVILEGES ON . TO 用户名@主机名对所有数据库及所有表单给予全部授权(需谨慎操作)

当然,账户的授权工作肯定是需要数据库管理员来执行的。下面以root管理员的身份登录到数据库管理系统中,针对mysql数据库中的user表单向账户luke授予查询、更新、删除以及插入等权限。

刘遄老师特别懂同学们现在心里想的是什么~哈哈,我起初也觉得在每条数据库命令后都要加上;(分号)来结束特别的不方便,时常还会忘记,但敲的命令多了也就自然习惯了。授权操作执行后来查看下luke用户的权限吧:

    [root@linuxprobe ~]# mysql -u root -p
    Enter password:此处输入root管理员在数据库中的密码
    MariaDB [(none)]> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Database changed
    MariaDB [mysql]> GRANT SELECT,UPDATE,DELETE,INSERT ON mysql.user TO luke@localhost;
    Query OK, 0 rows affected (0.00 sec)
    在执行完上述授权操作之后,我们再查看一下账户luke的权限:


    MariaDB [(none)]>  SHOW GRANTS FOR luke@localhost;
    +-------------------------------------------------------------------------------------------------------------+
    | Grants for luke@localhost |
    +-------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'luke'@'localhost' IDENTIFIED BY PASSWORD '*55D9962586BE75F4B7D421E6655973DB07D6869F' |
    | GRANT SELECT, INSERT, UPDATE, DELETE ON `mysql`.`user` TO 'luke'@'localhost' |
    +-------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)

上面输出信息中显示账户luke已经拥有了针对mysql数据库中user表单的一系列权限了。这时我们再切换到账户luke,此时就能够看到mysql数据库了,而且还能看到表单user(其余表单会因无权限而被继续隐藏):

    [root@linuxprobe ~]# mysql -u luke -p
    Enter password:此处输入luke用户在数据库中的密码
    MariaDB [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    +--------------------+
    2 rows in set (0.01 sec)
    MariaDB [(none)]> use mysql
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Database changed
    MariaDB [mysql]> SHOW TABLES;
    +-----------------+
    | Tables_in_mysql |
    +-----------------+
    | user            |
    +-----------------+
    1 row in set (0.01 sec)
    MariaDB [mysql]> exit
    Bye

大家不要心急,我们接下来会慢慢学习数据库内容的修改方法。当前,先切换回root账户,移除刚才的授权。

    [root@linuxprobe ~]# mysql -u root -p
    Enter password:此处输入root管理员在数据库中的密码
    MariaDB [(none)]> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    Database changed
    MariaDB [(none)]> REVOKE SELECT,UPDATE,DELETE,INSERT ON mysql.user FROM luke@localhost;
    Query OK, 0 rows affected (0.00 sec)

可以看到,除了移除授权的命令(revoke)与授权命令(grant)不同之外,其余部分都是一致的。这不仅好记而且也容易理解。执行移除授权命令后,再来查看账户luke的信息:

    MariaDB [(none)]> SHOW GRANTS FOR luke@localhost;
    +-------------------------------------------------------------------------------------------------------------+
    | Grants for luke@localhost |
    +-------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'luke'@'localhost' IDENTIFIED BY PASSWORD '*55D9962586BE75F4B7D421E6655973DB07D6869F' |
    +-------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流请加A群:560843(满),B群:340829(推荐),C群:463590(推荐),点此查看全国群。

*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/156647.html<

(0)
管理的头像管理
上一篇2025-03-16 00:28
下一篇 2025-03-16 00:29

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注