MSSQL 命令行操作说明 sql server 2022 命令行下进行配置管理

说明:本文的内容是因为我在导入Access2019的 *.accdb 格式的数据时,总是出错的背景下,不得已搜索和整理了一下,如何用命令行进行sql server 数据库和用户管理的方法,作为从Access2019 直接导出数据到sql server 数据库,再进行进一步操作的基础。

一、sql server 2022的安装

参考官网给出的方法即可,这里将命令搬过来,运行环境为 Debian12.5,root用户权限

curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpgcurl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.listapt-get update
sudo apt-get install -y mssql-server## 配置
/opt/mssql/bin/mssql-conf setup

注意:选择版本的时候用3 即可

二、命令行工具的安装

这里介绍的是 Win11 安装的方法

2.1 以管理员运行 cmd命令行

PS C:\Users\UserA> winget install sqlcmd

如果安装不成功,会提示下载地址不可用,把地址复制下来,独立下载,再双击安装即可

2.2 安装odbc驱动

直接用 Bing 搜索 ODBC Driver for SQL Server

同样是 *.msi 文件,双击安装即可

2.3 sqlcmd 环境变量的设置

安装完成后,在命令行无法直接运行,需要对 sqlcmd.exe 进行环境变量的配置。 相关教程很多。直接搜索 Win11 环境变量配置,有很多教程。

地址:  C:\Program Files\SqlCmd\sqlcmd.exe

三、用sqlcmd命令进入sql server 2022 并查看基本信息

3.1 命令行登录数据库服务器 

PS C:\Users\UserA> sqlcmd -S 192.168.1.80 -U SA

3.2 查看当前的服务器上有那些数据库

1> SELECT Name from sys.databases;
2> go

四、新建数据库和表,向表中输入内容

4.1 新建数据库

1> CREATE DATABASE 个人信息库;
2> go

4.2 向数据库添加表

1> use 个人信息库;
2> CREATE TABLE 基本信息表 ( 编号 INT PRIMARY KEY, 姓名 VARCHAR(50) NOT NULL, 年龄 INT );
3> go
Changed database context to '个人信息库'.

4.3 向数据库中的表内添加数据

1> INSERT INTO 基本信息表 (编号, 姓名, 年龄)
2> VALUES (1, '张三', 25)
3> go
(1 row affected)
1> INSERT INTO 基本信息表 (编号, 姓名, 年龄)
2> VALUES (2, '李四', 30)
3> go
(1 row affected)

五、查看某一数据库内包含哪些表,表的表头是什么

5.1 查看一个数据库中的表

1> use 个人信息库
2> go
Changed database context to '个人信息库'.
1> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';
2> go
TABLE_NAME
--------------------------------------------------------------------------------------------------------------------------------
基本信息表(1 row affected)
1>

5.2 查看表的字段有哪些,以及具体位置的数值,修改特定位置的数值

## 查看 基本信息表 有哪些字段
1> SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '基本信息表';
2> go
COLUMN_NAME
--------------------------------------------------------------------------------------------------------------------------------
编号
姓名
年龄(3 rows affected)## 知道了有哪些字段,查看 姓名 这一列的所有数值
1>USE 个人信息库;
2>SELECT 姓名 FROM 基本信息表;
3>GO## 知道了具体的 姓名 例如 李四,查看 李四 这一行的全部信息
1>USE 个人信息库;
2>SELECT * FROM 基本信息表 WHERE 姓名 = '李四';
3>GO## 查看 李四 的 年龄 字段的 数据
1>USE 个人信息库;
2>SELECT 年龄 FROM 基本信息表 WHERE 姓名 = '李四';
3>GO## 修改 李四 的 年龄 字段的 数据
USE database_name;
UPDATE 基本信息表 SET 年龄 = 27 WHERE 姓名 = '李四';## 注意:因为姓名的数据是 字符串,所以用 '' ,如果要查的字段是数字,则不需要!!!

注意:没有为数据库设置文字编码,可能会无法显示中文字段名称,需要进行配置

5.3 查看数据库的默认字符编码

1> SELECT SERVERPROPERTY('Collation');
2> go## 显示的最后一行
SQL_Latin1_General_CP1_CI_AS

5.4 设置一个数据库的文字编码

1>ALTER DATABASE 个人信息库 COLLATE Chinese_PRC_CI_AS
2>go

5.5 再次查看“基本信息表”中的字段

六、新建用户和删除用户

sql server中的用户有两种:1. 登录用户(Login user);2.一般用户(user)

6.0 查看当前系统上的用户名

1>USE master;
2>SELECT name FROM sys.sql_logins;
3>GO

6.1 创建登录用户

1>CREATE LOGIN AdminUserB WITH PASSWORD = 'Passw0rd!';
2>GO

6.2 更改密码

1>ALTER LOGIN AdminUserB WITH PASSWORD = 'new_password';
2>GO

注意:一般新建立的登录用户,没有权限对数据库进行操作,而是需要为其配置一般用户,并赋予一个数据库相关的权限后,才能进行数据库操作。也就是说,登录用户是管理 sql server 本身的, 一般用户,是对应着数据库的。

6.3 为登录用户创建一般用户

1>CREATE USER UserB FOR LOGIN AdminUserB;
2>GO

 注意:当前是以sa用户登录的,且没有进入任何的具体数据库,所以生成的用户 UserB 是针对当前环境的;如果要为AdminUserB 配置可以管理  个人信息库 这个数据库的用户,需要先 “user 个人信息库” 进入数据库,再创建一般用户。

6.4 更改一般用户的密码

1>ALTER USER UserB WITH PASSWORD = 'New Password'
2>GO

6.5 查看一般用户有哪些

1>SELECT * FROM sys.database_principals WHERE Type = 'S'
2>GO

6.6 用户的删除

1>DROP LOGIN AdminUserB
2>DROP USER UserB
3>GO

七、用户权限的配置

7.0 基本权限介绍

sql server 通过一些内置的角色,来给用户配置权限。 对于Login,也就是登录用户,可以拥有一些服务器级别的权限角色,比如:“sysadmin“, “securityadmin“, “dbcreator“, “processadmin”。 可以授予用户访问数据库对象(如表、视图、存储过程和函数)的权限,也就是向用户授予数据库级的角色,例如“db_owner”、“db_datareader”、“db_datawriter”、“db_ddladmin”。

7.1 登录用户的权限(需要进入 master 数据库,然后进行配置)

SysAdmin:此角色对 MSSQL 实例具有完全管理访问权限,可以在服务器上执行任何操作。
DbCreator:此角色可以创建、更改和删除数据库。
SecurityAdmin:此角色允许用户管理登录名、用户和角色。
BackupOperator:此角色允许用户备份和还原数据库。
BulkAdmin:此角色允许用户执行批量导入和导出操作。
DDLAdmin:此角色允许用户创建、更改和删除数据库对象,例如表、视图和存储过程。

7.2 一般用户的常用权限

DbOwner:此角色对特定数据库具有完全管理访问权限,可以对该数据库执行任何操作。
DataReader:此角色允许用户从数据库中的所有用户表中读取所有数据。
DataWriter:此角色允许用户在数据库的所有用户表中插入、更新和删除数据。

注意: 上述角色权限的配置要使用 sp_addrolemember  命令来完成!!

7.3  登录用户的角色权限配置示例

## 1.配置数据库的创建角色
1>USE master
2>GO
1>EXEC sp_addsrvrolemember 'dbcreator',  'AdminUserB';
2>GO## 2.配置服务器管理员角色
1>USE master
2>GO
1>EXEC sp_addsrvrolemember 'sysadmin', 'AdminUserB';
2>GO

7.4 一般用户的角色权限配置示例

## 配置针对特定数据库的数据写入角色权限
1>USE 个人信息库
2>GO
1>EXEC sp_addrolemember 'db_datawriter', 'UserB'
2>GO## 配置针对特定数据库的读取角色权限
1>USE 个人信息库
2>GO
1>EXEC sp_addrolemember 'db_datareader', 'UserB'
2>GO

7.5 查看某一用户的角色权限

1> EXEC sp_helpuser 'UserB';
2> GO

八、用户角色权限的取消

8.1 删除login 用户的角色权限

ALTER SERVER ROLE [role] DROP MEMBER [login];1>ALTER SERVER ROLE sysadmin DROP MEMBER AdminUserB;
2>GO

8.2 删除一般用户的角色权限

REVOKE db_datawriter FROM UserB;
GO

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/313223.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构(六)----串

目录 1.串的定义 2.串的基本操作 3.串的存储结构 (1)串的定义 •顺序存储 •链式存储 (2)求串长 (3)求子串 (4)比较串的大小 (5)定位操作 4.字符串的模式匹配 (1)朴素模式匹配算法 (2)KMP算法 •求模式串中的next数组(重点) •练习&#…

【C++】二维数组传参方式

最近刚开始刷剑指offer,刚做到第三题的时候,发现C二维数组的传参方式和C语言略有些不同,所以在这篇博客中,会列出C/C常见的二维数组传参方式。(本方式和代码都是基于vs环境所编写) 一.C语言二维数组传参方式…

如何将Oracle 中的部分不兼容对象迁移到 OceanBase

本文总结分析了 Oracle 迁移至 OceanBase 时,在出现三种不兼容对象的情况时的处理策略以及迁移前的预检方式,通过提前发现并处理这些问题,可以有效规避迁移过程中的报错风险。 作者:余振兴,爱可生 DBA 团队成员&#x…

React【Day2】

React表单控制 受控绑定 概念:使用React组件的状态(useState)控制表单的状态 双向绑定 MVVM 报错记录: 错误代码: import { useState } from "react";const App () > {const [value, setValue] useS…

OpenCV从入门到精通实战(八)——基于dlib的人脸关键点定位

本文使用Python库dlib和OpenCV来实现面部特征点的检测和标注。 下面是代码的主要步骤和相关的代码片段: 步骤一:导入必要的库和设置参数 首先,代码导入了必要的Python库,并通过argparse设置了输入图像和面部标记预测器的参数。…

从OWASP API Security TOP 10谈API安全

1.前言 应用程序编程接口(API)是当今应用驱动世界创新的一个基本元素。从银行、零售、运输到物联网、 自动驾驶汽车、智慧城市,API 是现代移动、SaaS 和 web 应用程序的重要组成部分,可以在面向客 户、面向合作伙伴和内部的应用程…

从零实现诗词GPT大模型:数据集介绍和预处理

专栏规划: https://qibin.blog.csdn.net/article/details/137728228 本章将介绍该系列文章中使用的数据集,并且编写预处理代码,处理成咱们需要的格式。 一、数据集介绍 咱们使用的数据集名称是chinese-poetry,是一个在github上开源的中文诗…

Android开发:Camera2+MediaRecorder录制视频后上传到阿里云VOD

文章目录 版权声明前言1.Camera1和Camera2的区别2.为什么选择Camera2? 一、应用Camera2MediaPlayer实现拍摄功能引入所需权限构建UI界面的XMLActivity中的代码部分 二、在上述界面录制结束后点击跳转新的界面进行视频播放构建播放界面部分的XMLActivity的代码上述代…

一个基于单片机内存管理-开源模块

概述 此模块是一位大佬写的应用于单片机内存管理模块mem_malloc,这个mem_malloc的使用不会产生内存碎片,可以高效利用单片机ram空间。 源码仓库:GitHub - chenqy2018/mem_malloc mem_malloc介绍 一般单片机的内存都比较小,而且没有MMU,malloc 与free的使用容易造成内存碎…

Linux 添加启动服务--Service

1,服务配置service文件 Service 服务的实际作用是开启后自动启动服务,运行一些不须要登录的程序,任务。 实例1、上电自动连接WIFI热点 1.1 新建.service文件 /etc/systemd/system/wificonnect.service [Unit] DescriptionService [wifico…

react 项目路由配置(react-router-dom 版本 v6.3、v6.4)

根据 react-router-dom 的版本,有不同的方式 一、react-router-dom v6.3 用到的主要 api: BrowserRouteruseRoutesOutlet 下面是详细步骤: 1、index.js BrowserRouter 用来实现 单页的客户端路由使用 BrowserRouter 包裹 App放在 顶级 位置&#x…

【IoTDB 线上小课 02】开源增益的大厂研发岗面经

还有友友不知道我们的【IoTDB 视频小课】系列吗? 关于 IoTDB,关于物联网,关于时序数据库,关于开源...给我们 5 分钟,持续学习,干货满满~ 5分钟学会 大厂研发岗面试 之前的第一期小课,我们听了 I…

【leetcode面试经典150题】58. 两数相加(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

MySQL高级(性能分析-查看执行频次、慢查询日志)

目录 1、SQL性能分析 1.1、SQL执行频率 1.2、慢查询日志 1、SQL性能分析 1.1、SQL执行频率 MySQL 客户端连接成功后,通过 show [ session | global ] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的 insert、update、delete、…

绿色自适应网址发布页源码

源码介绍 绿色自适应网址发布页源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 效果截图 源码下载 绿色自适应网址…

Linux--进程间的通信-命名管道

前文: Linux–进程间的通信-匿名管道 Linux–进程间的通信–进程池 命名管道的概念 命名管道是一种进程间通信(IPC)机制,运行不同进程之间进行可靠的、单向或双向的数据通信。 特点和作用: 跨平台性:在W…

CST电磁仿真物体表面的Sheet结构和生成3D Model【基础教程】

由Sheet结构生成3D Model 使用Shell Solid and Thicken Sheet! Modeling > Tools > Shape Tools > Shell Solid or Thicken Sheet Shell Solidor ThickenSheet会根据不同类型的模型提供两种完全不同的功能。 如033.由3D Model生成Cavity 所述&#xff…

数据结构(七)——B树和B+树

7.4.1_1 B树 5叉查找树 //5叉排序树的结点定义 struct Node {ElemType keys[4]; //最多4个关键字struct Node &child[5]; //最多5个孩子int num; //结点中有几个关键字 }; 如何保证查找效率? eg:对于5叉排序树,规定…

反射

目录 01、Java反射机制概述1.1、使用反射,实现同上的操作、调用私有属性 02、理解Class类并获取Class实例2.1、Class类的理解2.2、获取Class实例的4种方式2.3、Class实例对应的结构的说明 03、ClassLoader的理解3.1、ClassLoader的理解3.2、使用ClassLoader加载配置…

LabVIEW光学探测器板级检测系统

LabVIEW光学探测器板级检测系统 特种车辆乘员舱的灭火抑爆系统广泛采用光学探测技术来探测火情。光学探测器作为系统的关键部件,其探测灵敏度、响应速度和准确性直接关系到整个系统的运行效率和安全性。然而,光学探测器在长期使用过程中可能会因为灰尘污…