select GETDATE()
如果一台服务器同时部署了mysql,则修改时间后要去mysql查询当前时间
select now()
创建用户并分配权限
需要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