linux建立项目库失败,SQL Server On Linux:基于实际项目案例,总结功能支持情况及相...

select GETDATE()

2f42513fb38f2fcc0b84633673c13409.png

如果一台服务器同时部署了mysql,则修改时间后要去mysql查询当前时间

select now()

ba79f4d884ade49673286ae244856eaf.png

创建用户并分配权限

需要SA用户登录才有权限设置。

a)   应用程序和管理人员账号

Linux上的SQL Server不支持ADMINISTER BULK OPERATIONS权限或bulkadmin角色。只有sysadmin可以在Linux上对SQL Server执行批量插入。

sysadmin读写权限比较高,专门给系统相关程序或管理员使用,不得通过任何人为方式使用。

DECLARE @loginName VARCHAR(50) = '用户名'

DECLARE @loginPassword VARCHAR(50) = '密码'

IF EXISTS(SELECT 1 FROM sys.syslogins WHERE name = @loginName)

BEGIN

PRINT '登录名【' + @loginName + '】已存在。'

RETURN

END

DECLARE @sql VARCHAR(8000)

SET @sql = 'CREATE LOGIN ' + @loginName + ' WITH PASSWORD = ''' + @loginPassword + ''''

EXEC(@sql)

--分配角色

EXEC sys.sp_addsrvrolemember @rolename = 'sysadmin', @loginame = @loginName

所以,如果是部署在Windows的话,程序账户用bulkadmin、dbcreator。建议不用sysadmin。

EXEC sys.sp_addsrvrolemember @rolename = 'bulkadmin', @loginame = @loginName

EXEC sys.sp_addsrvrolemember @rolename = 'dbcreator', @loginame = @loginName

删除用户(不要手贱!)

a)      在删除该登录名之前,请更改相应数据库的所有者。

USE [SLSW_YN];

EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false;

@map: 将别名及其权限移交给新的数据库所有者

找到对应用户所拥有的数据库权限,并转给其他用户,如SA用户。

SELECT 'use ['+A.NAME+']; exec dbo.sp_changedbowner @loginame = N''sa'', @map = false; '

FROM SYS.DATABASES A

INNER JOIN SYS.SYSLOGINS B ON A.OWNER_SID=B.SID

WHERE B.NAME='用户名'

b)   执行a)产生的所有SQL语句

c)   杀掉账号所有线程再删除账号(不杀的话,禁用以后,原来打开的进程依然可以运行)

CREATE PROC [dbo].[PROC_mgr_login_process_kill_all]

@loginName VARCHAR(255)

AS

BEGIN

DECLARE @processes TABLE

(

ID INT IDENTITY(1, 1),

spid INT,

ecid INT,

status VARCHAR(50),

loginname VARCHAR(255),

hostname VARCHAR(255),

blk INT,

dbname VARCHAR(255),

cmd VARCHAR(8000),

request_id INT

)

DECLARE @sql VARCHAR(8000)

SET @sql = 'EXEC sp_who ''' + @loginName + ''''

INSERT INTO @processes

(

spid,

ecid,

status,

loginname,

hostname,

blk,

dbname,

cmd,

request_id

)

EXEC(@sql)

DECLARE @iLoop INT

DECLARE @totalCount INT

SELECT @iLoop = 1,

@totalCount = COUNT(*)

FROM @processes

WHILE @iLoop <= @totalCount

BEGIN

DECLARE @spid INT

SELECT @spid = spid FROM @processes WHERE ID = @iLoop

SET @sql = 'KILL ' + CAST(@spid AS VARCHAR(20))

EXEC(@sql)

SET @iLoop += 1

END

EN

EXEC MTNOH_AAA_DB.[dbo].[PROC_mgr_login_process_kill_all] '用户名';

EXEC sys.sp_droplogin @loginame = '用户名';

mssql.conf格式配置

类似mysql的etc/my.cnf

/var/opt/mssql/mssql.conf文件提供了每个设置的示例

cat /var/opt/mssql/mssql.conf

在线安装

自CU20起,SQL Server 2017开始支持RHEL 8。以下用于SQL Server 2017的命令指向RHEL 8存储库。RHEL 8未预安装SQL Server所需的python2。在开始SQL Server的安装步骤之前,请执行以下命令,并验证是否选择了python2作为解释器:

sudo alternatives --config python

# If not configured, install python2 and openssl10 using the following commands:

sudo yum install python2

sudo yum install compat-openssl10

# Configure python2 as the default interpreter using this command:

sudo alternatives --config python

有关详细信息,请参阅以下博客,了解如何安装python2并将其配置为默认解释器:https://www.redhat.com/en/blog/installing-microsoft-sql-server-red-hat-enterprise-linux-8-beta。

如果使用RHEL 7,请将以下路径更改为/rhel/7而不是/rhel/8。

安装mssql-server

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值