使用Visual Studio Code作为sqlserver数据库的客户端管理工具

deer332025-09-02技术文章25

使用 Visual Studio Code (VS Code) 管理 SQL Server 数据库是一个非常高效的方式,尤其是对于那些喜欢轻量级编辑器且希望在一个环境中完成代码编写和数据库管理任务的开发者。

且微软宣布 Azure Data Studio 将于 2026 年 2 月 28 日停用。官方 建议使用 Visual Studio Code。


下面是如何设置和使用 VS Code 来管理 SQL Server 数据库的基本步骤:

一: 安装 VS Code 和 MSSQL 扩展

  1. 下载并安装 VS Code:如果您还没有安装 VS Code,请访问 VS Code 官网 下载并安装适合您操作系统的版本。
  2. 安装 MSSQL 扩展
    • 打开 VS Code。
    • 点击左侧活动栏中的扩展图标(或按 Ctrl+Shift+X)。
    • 在搜索框中输入“SQL Server”或“mssql”。
    • 找到由 Microsoft 发布的“SQL Server (mssql)”扩展并点击“安装”。

截屏如下:

注意在vscode的下方命令行会出现安装情况的日志,一直等待安装成功,如果发现日志输出安装错误可看看网络是否正常,有时候电信网络会导致连载相关组件超时。

安装成功后左侧出现两个图标。


二: 配置与 SQL Server 的连接

  1. 打开命令面板:可以通过按 F1 或 Ctrl+Shift+P 来打开命令面板。
  2. 创建新连接
    • 在命令面板中输入 MS SQL: Connect 并选择它。
    • 如果是首次使用,系统会提示你创建一个新的连接配置文件。
    • 输入*号比填项的连接信息,其他可选,包括:
      • 服务器名称(Server name):例如 localhost 对于本地运行的实例,或具体的 IP 地址/域名对于远程服务器。
      • Input type:选择 Parameters,Browse Azure是连接云上数据库
      • 信任服务器认证(Trust servercertificate):勾选
      • 数据库名称(Database name):可选,指定后将直接连接到特定数据库。
      • 认证类型(Authentication type):可以选择 SQL login 认证或 Windows 认证。
      • 用户名和密码:如果选择了SQL login认证,则需提供sa账户或其他具有适当权限的账户信息。
    • 截屏如下:

  1. 点击 连接(Connect)进行连接测试。

连接成功后点击左侧sqlserver图标会看到连接上的数据库。

三: 执行 SQL

  1. 新建查询窗口
    • 再次打开命令面板,输入 MS SQL: New Query 并选择之。或者在数据库上点击右键,选择”New Query“也可。
    • 这将在 VS Code 中打开一个新的查询编辑器标签页,在里面你就可进行sql操作。
  1. 编写 SQL 查询:在新开的查询编辑器中输入您的 T-SQL 查询语句。
  2. 执行查询
    • 使用快捷键 Ctrl+Shift+E 来执行当前选定的部分或整个查询脚本。
    • 查询结果会在下方的结果面板中显示,您可以在这里查看数据、导出结果等。

四、在vscode中通过UI创建数据库和用户不好实现,但可通过sql实现。

1、创建数据库

CREATE DATABASE DatabaseName;

其中 DatabaseName 是你想要创建的数据库的名字。

包含更多选项的例子

你可以指定更多的选项来定制你的数据库,比如数据文件和日志文件的位置、大小、最大尺寸等。以下是一个更详细的例子:


CREATE DATABASE MyNewDatabase
ON 
( NAME = MyNewDatabase_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MyNewDatabase.mdf',
    SIZE = 10MB, 
    MAXSIZE = 50MB, 
    FILEGROWTH = 5MB )
LOG ON
( NAME = MyNewDatabase_log,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\MyNewDatabase.ldf',
    SIZE = 5MB, 
    MAXSIZE = 25MB, 
    FILEGROWTH = 5MB );

在这个例子中:

  • 数据库的数据文件被命名为 MyNewDatabase_dat,其物理文件名为 MyNewDatabase.mdf,初始大小为 10MB,最大大小为 50MB,每次增长 5MB。
  • 日志文件被命名为 MyNewDatabase_log,其物理文件名为 MyNewDatabase.ldf,初始大小为 5MB,最大大小为 25MB,每次增长 5MB。

注意事项

  • 路径:确保提供的路径对于 SQL Server 实例是可访问的,并且有足够的磁盘空间。
  • 权限:执行 CREATE DATABASE 命令的用户需要有相应的权限(通常是 sysadmin 或 dbcreator 固定服务器角色的成员)。
  • 版本差异:根据不同的 SQL Server 版本,某些高级选项可能有所不同,请参考具体版本的官方文档获取更多信息。

2、创建用户

在 SQL Server 中创建用户并授予其访问特定数据库的权限,通常涉及以下几个步骤:

  1. 创建登录(Login):首先需要创建一个登录,这是用于身份验证的服务器级别的安全主体。
  2. 创建数据库用户(User):然后在目标数据库中创建一个与该登录关联的用户。
  3. 授予数据库权限:最后,为该用户分配所需的数据库角色或特定权限。

以下是具体的 SQL 语句示例:

步骤 1: 创建登录

-- 使用 master 数据库
USE master;
GO

-- 创建一个 SQL Server 身份验证的登录
CREATE LOGIN [用户名] 
WITH PASSWORD = N'强密码', 
DEFAULT_DATABASE = [目标数据库名];
-- 可选:指定默认数据库
-- , DEFAULT_LANGUAGE = [语言]
-- , CHECK_POLICY = ON -- 启用密码策略检查
-- , CHECK_EXPIRATION = ON -- 启用密码过期检查
GO
  • 将 [用户名] 替换为你想要创建的登录名。
  • 将 N'强密码' 替换为一个符合安全要求的强密码。N 前缀表示 Unicode 字符串,对于包含非英文字符的密码是必要的。
  • 将 [目标数据库名] 替换为该用户主要要访问的数据库名称。

步骤 2: 创建数据库用户

-- 切换到目标数据库
USE [目标数据库名];
GO

-- 在目标数据库中创建一个用户,并将其映射到之前创建的登录
CREATE USER [用户名] FOR LOGIN [用户名];
-- 或者,如果想给数据库用户起一个不同的名字:
-- CREATE USER [数据库用户名] FOR LOGIN [服务器登录名];
GO
  • 将 [目标数据库名] 替换为实际的数据库名称。
  • 将 [用户名] 替换为步骤1中创建的登录名。通常数据库用户名与登录名相同。

步骤 3: 授予数据库权限

有几种方式可以授予权限,最常见的是将用户添加到预定义的数据库角色中:

方法 A: 授予db_datareader和db_datawriter角色(常用)

这将允许用户读取和修改该数据库中的所有表数据(但不能创建/删除表、视图等)。

-- 切换到目标数据库
USE [目标数据库名];
GO

-- 将用户添加到 db_datareader 角色(授予 SELECT 权限)
ALTER ROLE [db_datareader] ADD MEMBER [用户名];
GO

-- 将用户添加到 db_datawriter 角色(授予 INSERT, UPDATE, DELETE 权限)
ALTER ROLE [db_datawriter] ADD MEMBER [用户名];
GO

方法 B: 授予db_owner角色

这将授予用户对该数据库的完全控制权(等同于数据库所有者)。请谨慎使用,仅授予需要完全控制权的用户。

USE [目标数据库名];
GO

ALTER ROLE [db_owner] ADD MEMBER [用户名];
GO

方法 C: 授予更精细的权限(例如,只读)

如果只需要读取权限,可以只添加到 db_datareader 角色。

USE [目标数据库名];
GO

ALTER ROLE [db_datareader] ADD MEMBER [用户名];
GO

方法 D: 授予特定对象的特定权限

可以使用 GRANT 语句授予更具体的权限。

USE [目标数据库名];
GO

-- 授予对特定表的 SELECT 权限
GRANT SELECT ON [表名] TO [用户名];
GO

-- 授予对特定表的 INSERT, UPDATE, DELETE 权限
GRANT INSERT, UPDATE, DELETE ON [表名] TO [用户名];
GO

-- 授予执行特定存储过程的权限
GRANT EXECUTE ON [存储过程名] TO [用户名];
GO

完整示例

假设要创建一个登录名为 appUser,密码为 P@ssw0rd123!,并赋予其对名为 MyAppDB 的数据库的读写权限:

-- 1. 创建登录 (在 master 数据库)
USE master;
GO
CREATE LOGIN [appUser] WITH PASSWORD = N'P@ssw0rd123!', DEFAULT_DATABASE = [MyAppDB];
GO

-- 2. 在目标数据库创建用户 (切换到 MyAppDB)
USE [MyAppDB];
GO
CREATE USER [appUser] FOR LOGIN [appUser];
GO

-- 3. 授予读写权限
ALTER ROLE [db_datareader] ADD MEMBER [appUser];
ALTER ROLE [db_datawriter] ADD MEMBER [appUser];
GO

重要提示

  • 权限提升:确保执行这些命令的账户具有足够的权限(通常是 sysadmin 或 dbcreator 角色,以及在目标数据库上的 db_owner 权限)。
  • 安全性:始终使用强密码。避免使用 db_owner 角色,除非绝对必要,遵循最小权限原则。
  • 防火墙:确保 SQL Server 的防火墙允许来自客户端的连接。
  • SQL Server 配置:确认 SQL Server 实例已启用混合身份验证模式(Windows 身份验证和 SQL Server 身份验证),如果要使用 SQL 登录。
  • 工具:虽然可以使用 SQL 语句,但使用 SQL Server Management Studio (SSMS) 的图形界面进行用户和权限管理通常更直观。

五、其他功能

  • 智能感知支持:MSSQL 扩展提供了语法高亮、自动完成等功能,帮助提高编码效率。
  • 对象资源管理器:虽然 VS Code 不像 SQL Server Management Studio (SSMS) 那样内置了完整对象资源管理器,但通过运行特定的 T-SQL 命令,您可以浏览数据库结构。
  • 调试存储过程:对于更复杂的任务如调试存储过程,可能需要转向 SSMS 或 Azure Data Studio。

通过这些步骤,您就可以利用 Visual Studio Code 轻松地连接到 SQL Server 数据库并执行 SQL 操作了。这种方法非常适合那些喜欢轻量级开发环境的人士,同时也能显著提升工作效率。