2025-05-18
Linux
0

目录

如何在 Docker 容器中添加 SQL 用户
在本教程中,您将学习:
软件要求和 Linux 命令行约定
如何在 Docker 容器中添加 SQL 用户
逐例说明
结论
常见问题 (FAQ)

如何在 Docker 容器中添加 SQL 用户


在本文中,我们将探讨在 Docker 容器中添加 SQL 用户所需的步骤。在 Docker 中使用数据库可以通过封装数据库环境来显著增强您的开发工作流程,使其可重现且易于管理。我们将介绍不同的 SQL 数据库类型,即 MySQL、PostgreSQL 和 Microsoft SQL Server (MSSQL),允许您根据您的工具套件进行选择。

在本教程中,您将学习:

  • 如何在 Docker 化 SQL 环境中创建数据库。
  • 如何将用户添加到指定的 SQL 数据库。
  • 如何为创建的用户分配权限。

软件要求和 Linux 命令行约定

如何在 Docker 容器中添加 SQL 用户

DOCKER 和 SQL 数据库
您了解吗?在 Docker 中运行 SQL 数据库可以通过允许即时环境复制来提高开发效率,但对于生产环境,优化存储和网络对于性能和可靠性至关重要。

本节将提供在 Docker 容器中运行的不同 SQL 环境中创建数据库、添加用户和分配权限的分步说明。

逐例说明

  1. **MySQL:**在 MySQL Docker 容器中添加用户。

    Start a MySQL container docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword -d mysql Access the MySQL shell docker exec -it mysql-container mysql -u root -p Create a new database CREATE DATABASE mydatabase; Create a new user CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; Grant permissions to the user GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';

在此示例中,我们首先运行 MySQL Docker 容器,然后创建一个名为 mydatabase 的数据库。之后,我们创建一个带有密码的用户 myuser,并授予该用户对先前创建的数据库的所有权限。

  1. **PostgreSQL:**在 PostgreSQL Docker 容器中添加用户。

    Start a PostgreSQL container docker run --name postgres-container -e POSTGRES_PASSWORD=yourpassword -d postgres Access the PostgreSQL shell docker exec -it postgres-container psql -U postgres Create a new database CREATE DATABASE mydatabase; Create a new user CREATE USER myuser WITH PASSWORD 'mypassword'; Grant permissions to the user GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;

对于 PostgreSQL,我们遵循与 MySQL 中类似的过程。我们启动一个 PostgreSQL 容器,创建一个数据库,然后创建一个具有密码的用户 myuser,然后向该用户授予对指定数据库的所有权限。

  1. **MSSQL:**在 Microsoft SQL Server Docker 容器中添加用户。

    Step 1: Start an MSSQL container as root docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Str0ngP@ssw0rd!' -p 1433:1433 \ --name mssql-container --user root -d mcr.microsoft.com/mssql/server:latest Step 2: Enter the MSSQL container docker exec -it mssql-container bash Step 3: Update package lists and install sqlcmd apt update && apt install -y sqlcmd Step 4: Access the MSSQL shell using sqlcmd sqlcmd -S localhost -U SA -P 'Str0ngP@ssw0rd!' Step 5: Create a new database CREATE DATABASE mydatabase; GO Step 6: Create a new user with a strong password CREATE LOGIN myuser WITH PASSWORD = 'S3cur3P@ssword!'; GO USE mydatabase; GO CREATE USER myuser FOR LOGIN myuser; GO Step 7: Grant db_owner permissions to the user ALTER ROLE db_owner ADD MEMBER myuser; GO

在此示例中,我们以 root 身份启动 MSSQL 容器,安装“sqlcmd”,然后创建一个数据库、一个用户,并授予他们db_owner角色,从而完全控制数据库。

结论

在本教程中,我们介绍了如何在 Docker 容器中为不同的数据库类型(包括 MySQL、PostgreSQL 和 MSSQL)添加 SQL 用户。这些步骤将帮助您在 Docker 化数据库环境中有效地管理用户。将用户权限保持在最低限度可增强安全性,同时为您的应用程序提供必要的访问权限。

常见问题 (FAQ)

  1. 我可以在同一台机器上运行多个 SQL 数据库容器吗?

    是的,只要每个容器都映射到主机上的唯一端口,就可以运行多个 SQL 数据库容器。

  2. 将我的数据库容器暴露在互联网上安全吗?

    将数据库容器暴露在 Internet 上可能会带来安全风险。强烈建议使用防火墙