本页内容

  • 先决条件
  • 配置软件仓库
  • 安装 MSSQL Server 2019
  • 配置 UFW
  • 安装 MSSQL 工具
  • 连接 MSSQL Server
  • MSSQL Server 基本操作
  • 结语

MSSQL Server(即 Microsoft SQL Server)是由 Microsoft 开发的 RDBMS(关系型数据库管理系统)。作为数据库服务器,它用于存储应用程序的数据。SQL Server 适用于多种应用场景,你可以将 MS SQL Server 用作桌面应用程序的数据库,也可以用于 Web 应用程序或任何小型服务器应用程序。

本教程将指导你在 Debian 11 上安装并使用 Microsoft SQL Server 数据库。首先,你将配置 MSSQL Server 软件仓库,然后安装它。接着,你将配置 UFW 防火墙并安装用于管理 MSSQL Server 的 MSSQL 工具。最后,你将使用 MSSQL 工具连接到 MSSQL Server,并学习在 MSSQL Server 上进行 CRUD(创建、读取、更新、删除)的基本操作。

先决条件

要跟随并完成本教程,你需要满足以下要求:

  • 一台运行 Debian 11、至少具备 4 GB 内存的 Linux 服务器——本示例使用主机名为 'mssql-deb'、IP 地址为 '192.168.5.10' 的 Debian 服务器。
  • 一个具有 sudo 超级用户/管理员权限的非 root 用户。

当这些要求准备就绪后,你就可以开始 MSSQL Server 的安装过程了。

配置软件仓库

在第一步中,你将在 Debian 服务器上配置 MSSQL Server 软件仓库。你将为 MSSQL Server 2019 配置 MSSQL Server 软件仓库。

首先,以你的用户身份登录服务器,并执行 'sudo su' 命令获取 root 权限。然后,输入 apt 命令来更新并刷新你的软件包索引。

sudo su
sudo apt update

现在使用以下 'apt install' 命令安装一些基础依赖。当提示时输入 y 并按 ENTER 键继续。

sudo apt install gnupg2 apt-transport-https wget curl

在 Debian 11 上安装并使用 Microsoft SQL Server

接下来,使用以下 'wget' 命令下载 Microsoft SQL Server 软件仓库的 GPG 密钥。然后,使用下面的 'gpg --dearmor' 命令将 GPG 文件从 .asc 转换为 .gpg。

wget -q -O- https://packages.microsoft.com/keys/microsoft.asc | \
    gpg --dearmor | sudo tee /usr/share/keyrings/microsoft.gpg > /dev/null 2>&1

现在输入以下命令,将 MSSQL Server 软件仓库添加到你的 Debian 系统。由于 Microsoft 没有为 Debian 发行版提供 MSSQL Server 软件包,你将使用适用于 Ubuntu 的 MSSQL Server 软件包。

echo "deb [signed-by=/usr/share/keyrings/microsoft.gpg arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/20.04/mssql-server-2019 focal main" | \
    sudo tee /etc/apt/sources.list.d/mssql-server-2019.list

最后,输入以下 'apt' 命令来更新并刷新你的 Debian 软件包索引,使更改生效。

sudo apt update

在 Debian 11 上安装并使用 Microsoft SQL Server

既然已经添加了 MSSQL Server 软件仓库,你就可以准备安装和配置 MSSQL Server 了。

安装 MSSQL Server 2019

在这一步,你将通过官方 MSSQL Server 软件仓库将 MSSQL Server 2019 软件包安装到你的 Debian 系统。然后,你将通过选择要安装的 MSSQL Server 类型,并设置 MSSQL Server 身份验证的默认密码来完成安装配置。

要安装 MSSQL Server 软件包,请输入以下 'apt install' 命令。当提示时,输入 y 确认并按 ENTER 键继续。

sudo apt install mssql-server

在 Debian 11 上安装并使用 Microsoft SQL Server

MSSQL Server 安装完成后,你应会看到类似如下的输出——一条用于完成 MSSQL Server 安装的提示。

在 Debian 11 上安装并使用 Microsoft SQL Server

输入以下命令来设置和配置你的 MSSQL Server 安装。

sudo /opt/mssql/bin/mssql-conf setup

在此过程中,系统会询问你以下配置:

  • 选择你要安装的 MSSQL Server 版本。输入数字 3 以在你的 Debian 系统上安装 Express 版 MSSQL Server。
  • 现在输入 'Yes' 确认并接受许可条款。
  • 最后,输入你的 MSSQL Server 安装的新密码并重复确认。

安装成功后,你应会看到类似 'Setup has been completed successfully. SQL Server is now running' 的提示信息。

在 Debian 11 上安装并使用 Microsoft SQL Server

输入以下 systemctl 命令来确认 MSSQL Server 的状态,确保它正在运行。

sudo systemctl is-enabled mssql-server
sudo systemctl status mssql-server

输出 'enabled' 表明 MSSQL Server 将在系统启动时自动启动。而 MSSQL Server 的状态为 'active (running)'。

在 Debian 11 上安装并使用 Microsoft SQL Server

在这一步,你已安装并配置了 MSSQL Server,并确认它正在运行且已启用。下一步,你将配置 UFW 防火墙。

配置 UFW

在已安装并配置 MSSQL Server 之后,你现在将安装 UFW,开放 OpenSSH 应用,然后开放 MSSQL Server 使用的默认端口 1443。

使用以下 'apt install' 命令安装 UFW。当提示时输入 y 并按 ENTER 键继续。

sudo apt install ufw

在 Debian 11 上安装并使用 Microsoft SQL Server

UFW 安装完成后,输入以下命令将 OpenSSH 服务和 MSSQL Server 端口 1433/tcp 添加到 ufw。

sudo ufw allow OpenSSH
sudo ufw allow 1433/tcp

接下来,使用以下命令启动并启用 ufw。当提示确认时,输入 y 并按 ENTER 键继续。完成后,ufw 防火墙应已运行并启用。

sudo ufw enable

在 Debian 11 上安装并使用 Microsoft SQL Server

为确保 ufw 正在运行,且 OpenSSH 服务和 MSSQL Server 端口 '1433/tcp' 已添加,请输入以下命令检查 ufw 的状态。

sudo ufw status

输出 'Status: active' 表明 ufw 正在运行。同时,你还会看到 OpenSSH 服务和端口 1433/tcp 已添加并在 ufw 上可用。

在 Debian 11 上安装并使用 Microsoft SQL Server

现在你已经安装了 ufw,并将 OpenSSH 服务和 MSSQL Server 端口 '1433/tcp' 添加到了 ufw。下一步,你将在 Debian 系统上安装 MSSQL 工具。

安装 MSSQL 工具

至此,你已在 Debian 系统上安装并加固了 MSSQL Server。现在,你将安装用于连接和管理 MSSQL Server 的 MSSQL 工具。MSSQL 工具位于不同的软件仓库中,因此你需要先添加 MSSQL 工具仓库,然后通过 APT 安装它。

输入以下命令以添加 MSSQL 工具软件包的仓库。

echo "deb [signed-by=/usr/share/keyrings/microsoft.gpg arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/20.04/prod focal main" | \
    sudo tee /etc/apt/sources.list.d/prod.list

之后,通过下面的 'apt update' 命令更新并刷新你的软件包索引。

sudo apt update

在 Debian 11 上安装并使用 Microsoft SQL Server

现在输入以下 'apt install' 命令来安装 MSSQL 工具软件包。当提示时输入 y 并按 ENTER 键继续。

sudo apt install mssql-tools unixodbc-dev

在 Debian 11 上安装并使用 Microsoft SQL Server

当提示确认许可条款时,选择 Yes 接受并按 ENTER 键继续。

在 Debian 11 上安装并使用 Microsoft SQL Server

在 Debian 11 上安装并使用 Microsoft SQL Server

安装完成后,MSSQL 工具的二进制文件将位于 '/opt/mssql-tools/bin' 目录下。输入以下命令查看 '/opt/mssql-tools/bin' 目录下的文件列表,你应该会看到两个二进制文件 'bcp' 和 'sqlcmd'。

ls /opt/mssql-tools/bin

在默认配置下,MSSQL 工具只能在 '/opt/mssql-tools/bin' 目录内执行。要解决这个问题,你必须通过 '~/.bashrc' 配置将 '/opt/mssql-tools/bin' 目录添加到系统 PATH 环境变量中。

输入以下命令,将 '/opt/mssql-tools/bin' 添加到二进制 PATH 环境变量。

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

现在重新加载 '~/.bashrc' 配置文件并验证 PATH 环境变量。成功后,你应该会在二进制 PATH 列表中看到 '/opt/mssql-tools/bin' 目录。

source ~/.bashrc
echo $PATH

最后,输入以下命令以确保你可以执行 MSSQL 工具命令。你应该会看到两个二进制文件 'sqlcmd' 和 'bcp' 的完整路径。

which sqlcmd
which bcp

在 Debian 11 上安装并使用 Microsoft SQL Server

至此,你已安装并配置了 MSSQL Server,还使用 UFW 加固了 Debian 服务器,并安装了 MSSQL 工具。下一步,你将学习如何使用 MSSQL 工具连接到 MSSQL Server。

连接 MSSQL Server

在本节中,你将通过已安装的 MSSQL 工具连接到 MSSQL Server。你将通过 'sqlcmd' 实用工具连接到 MSSQL Server 的默认端口 1443。

使用以下 'sqlcmd' 命令登录 MSSQL Server。当提示时,输入你的 MSSQL Server 密码,然后按 ENTER 键。

sqlcmd -S localhost -U SA -p

登录后,输入以下查询以查看 MSSQL Server 的当前版本。你应该会看到安装在 Linux 系统 Debian 11 上的 MSSQL Server 2019 Express Edition。

select @@version
go

在 Debian 11 上安装并使用 Microsoft SQL Server

最后,输入以下查询以查看 MSSQL Server 上默认及可用的数据库列表。你应该会看到 master、tempdb、model 和 msdb 作为 MSSQL Server 的默认数据库可用。

select name from sys.databases;
go

在 Debian 11 上安装并使用 Microsoft SQL Server

MSSQL Server 基本操作

连接到 MSSQL Server 后,你现在将学习 MSSQL Server 的基本操作。你将通过 'sqlcmd' 实用工具在 MSSQL Server 上创建新用户、创建数据库,并插入和检索数据。

输入以下查询,在你的 MSSQL Server 上创建一个新的登录名。在本示例中,你将创建一个名为 'Bob' 的新登录名,请务必更改该查询中的默认密码。

CREATE LOGIN Bob WITH PASSWORD='p4ssw0rdBob';
GO

现在使用以下 SQL 查询创建一个新数据库 'TestDB'。

CREATE DATABASE TestDB
GO

在 Debian 11 上安装并使用 Microsoft SQL Server

接下来,输入以下查询切换到数据库 'TestDB' 并创建一个名为 'users' 的新表。在 'users' 表中,你将创建 5 个不同的字段——id、first_name、last_name、email 和 last_login。

Use TestDB
GO
CREATE TABLE users (
    id INT PRIMARY KEY IDENTITY (1, 1),
    first_name VARCHAR (50) NOT NULL,
    last_name varchar(50) NOT NULL,
    email varchar(50),
    last_login DATE NOT NULL
);
GO

在 Debian 11 上安装并使用 Microsoft SQL Server

在数据库 'TestDB' 中,运行以下查询创建一个名为 'Bob' 的新用户,并指定 'Bob' 的登录名。

CREATE USER Bob FOR LOGIN Bob;
GO

用户创建完成后,输入以下查询,将对 'users' 表的基本 CRUD 操作(创建、读取、更新、删除)权限授予名为 'Bob' 的用户。

GRANT SELECT, INSERT, UPDATE, DELETE ON users TO Bob;
GO

现在输入 'quit' 退出 MSSQL Server shell。

quit

至此,你已在 MSSQL Server 上创建了登录名、数据库、用户和表。

在 Debian 11 上安装并使用 Microsoft SQL Server

为确认新用户可用,你将作为用户 'Bob' 登录到指定的数据库 'TestDB'。然后,你将向 'users' 表插入新数据。

输入以下 'sqlcmd' 命令,以用户 'Bob' 的身份登录到数据库 'TestDB' 的 MSSQL Server。当提示输入密码时,输入你为登录名 'Bob' 创建的密码。

sqlcmd -S localhost -U Bob -d TestDB -p

登录后,运行以下查询向 'users' 表插入新数据。操作成功后,你应会看到类似 '(1 row affected)' 的输出。

INSERT INTO users (first_name, last_name, email, last_login) VALUES ('Bob', 'Marlyn', '
[email protected]
', '20220901');
GO

现在输入以下查询,从 'users' 表中检索你的数据。成功后,你的数据应会打印在屏幕上。

SELECT * FROM users
GO

在 Debian 11 上安装并使用 Microsoft SQL Server

SELECT Name from sys.Databases
GO

结语

在本指南中,你在 Debian 11 系统上安装并配置了 MSSQL Server。你还学习了如何在 Debian 上安装和配置 SQL 工具以管理 MSSQL Server。

最后,你还学习了用于连接 SQL Server 的 SQL 工具 'sqlcmd' 的基本用法,并学习了 SQL Server 的基本操作,包括创建 MSSQL 用户、设置数据库和表,以及在 MSSQL Server 上执行基本的 CRUD(创建、读取、更新、删除)操作。