SQLServer
Docker
安装
查看 docker 官网 sqlserver 镜像源:
1
https://hub.docker.com/_/microsoft-mssql-server
获取 docker 镜像
1
docker pull mcr.microsoft.com/mssql/server:2017-latest
查看镜像
1
docker images
启动
1 | docker run --name msserver -d \ |
进入容器操作
1 | -- 进入sqlserver容器 |
更改 sa 的登录密码
- 先进入容器
1 | sudo docker exec -it msserver "bash" |
- 修改密码
1 | /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "MyPassWord123" -Q 'ALTER LOGIN SA WITH PASSWORD="Root1234"' |
使用 Navicat 连接 SQL Server
测试连接如果有报如下错误
[IM002][Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 (0)
解决方法
安装 navicat 自带 sqlncli_x64.msi,就在安装目录下,安装后问题解决!
1 | 连接sqlserver 端口号 是加在 ip地址后面的用 逗号 分开格式如下 |
命令
参考:https://www.cnblogs.com/xwdreamer/archive/2012/06/25/2562828.html
数据库
创建数据库
1
CREATE DATABASE yaoqishan
查看版本
1
2
3
4
5
6select @@version
Microsoft SQL Server 2017 (RTM-CU25) (KB5003830) - 14.0.3401.7 (X64)
Jun 25 2021 14:02:48
Copyright (C) 2017 Microsoft Corporation
Developer Edition (64-bit) on Linux (Ubuntu 16.04.7 LTS)查看数据库编码
1
2
3
4
5
6
7
8
9SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
936 简体中文 GBK
950 繁体中文 BIG5
437 美国 / 加拿大英语
932 日文
949 韩文
866 俄文
65001 unicode UFT-8修改用户数据库字符集
1
2
3
4
5
6
7
8alter database yaoqishan collate Chinese_PRC_CI_AS
# 如果失败,执行下面
ALTER DATABASE yaoqishan SET SINGLE_USER WITH ROLLBACK IMMEDIATE
alter database yaoqishan collate Chinese_PRC_CI_AS
ALTER DATABASE yaoqishan SET MULTI_USER
# 需要重新导入数据
用户
想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权:一、获得准许连接 SQL Server 服务器的权利; 二、获得访问特定数据库中数据的权利(select, update, delete, create table …)
创建登陆帐户(create login)
1
2# 创建登录用户 test 密码 123456 数据库 mydb。只有连接权限。默认是 guest 数据库用户身份, 可以访问 guest 能够访问的数据库对象
create login test with password='123456', default_database=mydb创建数据库用户(create user)
1
2
3
4
5
6# 切换到 mydb 数据库
use mydb
# 创建用户
create user test for login test with default_schema=dbo
#指定数据库用户 “dba” 的默认 schema 是 “dbo”,dbo为DataBaseOwner的简写,每个数据库都有一个dbo用户赋予数据库用户 test 权限
1
2exec sp_addrolemember 'db_owner', 'test'
# 此时,test 就可以全权管理数据库 mydb 中的对象了用户 test 访问多个数据库,比如 mydb2。 可以让 sa 执行下面的语句:
1
2
3
4
5
6
7use mydb2
go
create user test for login test with default_schema=dbo
go
exec sp_addrolemember 'db_owner', 'test'
go
# 此时,test 就可以有两个数据库 mydb, mydb2 的管理权限了!禁用、启用登陆帐户
1
2
3alter login test disable
alter login test enable登陆帐户改名
1
2alter login test with name=test2
#提示:在 SQL Server 2005 中也可以给 sa 改名。 《SQL Server 2005 安全性增强:给超级用户 sa 改名》登陆帐户改密码:
1
alter login test with password='111111'
数据库用户改名:
1
alter user test with name=test2
更改数据库用户 defult_schema:
1
alter user test with default_schema=db2
删除数据库用户
1
drop user test
删除 SQL Server 登陆帐户
1
drop login test
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 王文哲的博客!