AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 45678
Accepted
Jeremy Wadhams
Jeremy Wadhams
Asked: 2013-07-04 12:22:36 +0800 CST2013-07-04 12:22:36 +0800 CST 2013-07-04 12:22:36 +0800 CST

Unix 上的 MySQL,管理员帐户是否应该加入操作系统“mysql”组?

  • 772

当我通过 Yum 安装 MySQL 时,它会自动创建mysql操作系统用户和组。然后mysqld作为mysql(而不是作为根)执行,并且数据目录中的所有文件都归mysql:mysql.

这显然是正确的安全做法,我理解为什么会发生这种情况并且不想破坏它。

当我管理 MySQL 系统时,我刚刚养成了sudo在需要与受保护文件交互时使用的习惯(例如,使用 读取二进制日志mysqlbinlog、创建备份 tarball 等)。

将我的操作系统用户添加到 mysql 组是否也有效?有没有我没有考虑到的主要缺点?

mysql security
  • 1 1 个回答
  • 264 Views

1 个回答

  • Voted
  1. Best Answer
    user25707
    2013-07-08T01:01:26+08:002013-07-08T01:01:26+08:00

    当使用 mysqlbinlog 从 MySQL 导出作业信息时,使用 sudo 对我来说也很方便,因为它通常是为了修复或排除故障,时间是一个问题。

    如果您打算重新导入从 MySQL 中提取的数据,那么您有时需要解决权限问题。当使用 root 帐户创建转储文件时,创建的文件假定 root 帐户的权限,MySQL 很难访问这些文件。(我也避免将粘性权限作为一种解决方法,因为当您不定期处理它时它会变得混乱)

    我可能会建议:

    • 将您的操作系统帐户添加到 mysql 组,因为如果您的职责包括在该服务器上管理/排除 MySQL 故障,则可以方便地查看 MySQL 数据文件夹中的文件。
    • 限制有权从操作系统访问 MySQL 数据/日志文件的操作系统帐户,以降低数据暴露级别。
    • 开发人员不需要访问操作系统(假设数据库服务器在内联网上保持独立并且不包含 Web 服务器)
    • 如果您改变职责,请勿创建需要您的帐户保留的文件/脚本。(即,如果我正在管理您的其中一台数据库服务器,我不应该在您的帐户下找到自动脚本。)

    对于常规管理任务,我倾向于创建单独的操作系统“服务”帐户来与 mysql 组中的 MySQL 交互,而不是使用我的本地帐户。

    如果您查看正在运行的进程 ( ps -ef | grep mysql ),您应该看到 MySQL 是由根帐户 ( mysqld_safe ) 初始化的,该帐户(如您所提到的)在 mysql 帐户下运行 MySQL 守护程序 ( mysqld )。

    使用相同的方法,我倾向于创建可以以 root 权限运行的脚本,这些脚本以具有较少权限的特定用户身份调用并运行 linux shell 中的另一个文件。这也使得将相同的脚本添加到根 crontab 变得更加容易。

    我首先创建一个名为“mysqlbackup”的服务帐户,然后在主目录中添加一个文件.my.cnf

    /------文件内容

    [客户]

    用户 = osbackup

    密码 = 12345

    ------/

    创建由“root”运行的管理脚本,它从 shell 执行另一个文件

    • 文件: /var/lib/scripts/run-db-backup.sh (chmod 700 & chown root:root)
    • 文件包含: su -l mysqlbackup -c /var/lib/scripts/db-backup.sh

    创建您的“真实”脚本以作为操作系统用户“ mysqlbackup ”运行

    • 文件: /var/lib/scripts/db-backup.sql (chmod 700 & chown mysqlbackup:mysql)
    • 1

相关问题

  • 是否有任何 MySQL 基准测试工具?[关闭]

  • 我在哪里可以找到mysql慢日志?

  • 如何优化大型数据库的 mysqldump?

  • 什么时候是使用 MariaDB 而不是 MySQL 的合适时机,为什么?

  • 组如何跟踪数据库架构更改?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    授予用户对所有表的访问权限

    • 5 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve