Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sql express linux sqlcmd disable network tcp ip  [new]
tadeyiloda
Member

Откуда:
Сообщений: 279
поставил на линукс sql express 2017
по умолчанию сразу после установки у него открыты сетевые подключения на порт 1433, в отличие от express который ставится на виндовс
есть способ закрыть сетевые подключения из консоли через sqlcmd? как в винде через отключение protocol tcp ip
или только фаерволом закрывать внешние соединения?
21 ноя 17, 10:28    [20971212]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7407
tadeyiloda,

а что, у линкcа есть именованные каналы или shared memory?
21 ноя 17, 13:40    [20972037]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
tadeyiloda
Member

Откуда:
Сообщений: 279
затрудняюсь ответить
тогда остается фаервол
21 ноя 17, 13:59    [20972126]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
asrfnj
Guest
А если установить ipaddress = 127.0.0.1 ?
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf#tcpport
21 ноя 17, 17:52    [20973069]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
tadeyiloda
Member

Откуда:
Сообщений: 279
asrfnj
А если установить ipaddress = 127.0.0.1 ?
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-mssql-conf#tcpport


не помогло
прописал сюда /var/opt/mssql/mssql.conf
[network]
ipaddress = 127.0.0.1

перегрузился
но по локалке все равно соединяет через management studio по ип 192.168.1.111
если прописать новый порт tcpport = 16666 тогда порт меняется

возможно ipaddress нужен для других целей
22 ноя 17, 15:26    [20975409]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
asrfnj
Guest
tadeyiloda,
а что в логах ?
exec sp_readerrorlog  0,1, 'Server is listening on'
exec sp_readerrorlog  1,1, 'Server is listening on'
exec sp_readerrorlog  2,1, 'Server is listening on'
22 ноя 17, 16:20    [20975652]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
tadeyiloda
поставил на линукс sql express 2017
по умолчанию сразу после установки у него открыты сетевые подключения на порт 1433, в отличие от express который ставится на виндовс
есть способ закрыть сетевые подключения из консоли через sqlcmd? как в винде через отключение protocol tcp ip
или только фаерволом закрывать внешние соединения?

Нужно просто указать MSSQL_IP_ADDRESS. По-моему, не глобально в /etc/environment, а достаточно для в /etc/profile для login shells. Но не уверен.
22 ноя 17, 16:33    [20975700]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
guest97
Guest
Не помогает

sudo ./mssql-conf set network.ipaddress '127.0.0.1'

sudo ./mssql-conf set network.ipaddress '127.0.0.1'
SQL Server needs to be restarted in order to apply this setting. Please run
'systemctl restart mssql-server.service'.


Всё равно

select @@VERSION
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) 
	Aug 22 2017 17:04:49 
	Copyright (C) 2017 Microsoft Corporation
	Developer Edition (64-bit) on Linux (Oracle Linux Server 7.1)

exec sp_readerrorlog  0,1, 'Server is listening on'
LogDate                 ProcessInfo  Text
----------------------- ------------ --------------------------------------------------------------
2017-11-22 23:42:01.710 spid19s      Server is listening on [ 'any' <ipv6> 1433].
2017-11-22 23:42:01.720 spid19s      Server is listening on [ 'any' <ipv4> 1433].
2017-11-22 23:42:01.750 Server       Server is listening on [ ::1 <ipv6> 1434].
2017-11-22 23:42:01.750 Server       Server is listening on [ 127.0.0.1 <ipv4> 1434].
22 ноя 17, 23:49    [20976580]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
guest97,

"Oracle Linux Server 7.1" - думаю, Вы уже все поняли, да? :)
И потом вместо 14.0.1000.169 я бы очень рекомендовал 14.0.3006.16. Там столько всего исправили - у меня волосы дыбом стояли, когда описание CU1 читал.
Да и Вам нужно не ipaddress присваивать в конфиге, а выставлять переменную окружения MSSQL_IP_ADDRESS - "Set the IP address. Currently, the IP address must be IPv4 style (0.0.0.0).", только она определяет, какой IP слушает MSSQL on Linux.
23 ноя 17, 00:03    [20976606]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
guest97
Guest
export MSSQL_IP_ADDRESS="127.0.0.1"
env | grep MSSQL_IP_ADDRESS
MSSQL_IP_ADDRESS=127.0.0.1

не помогает. Всё равно Server is listening on [ 'any' <ipv4> 1433]. И принимает подключения.

Microsoft SQL Server 2017 (RTM-CU1) (KB4038634) - 14.0.3006.16 (X64) 
	Oct 19 2017 02:42:29 
	Copyright (C) 2017 Microsoft Corporation
	Developer Edition (64-bit) on Linux (CentOS Linux 7 (Core))

LogDate                 ProcessInfo  Text
----------------------- ------------ ----------------------------------------------------------------------
2017-11-23 00:16:39.110 spid24s      Server is listening on [ 'any' <ipv6> 1433].
2017-11-23 00:16:39.110 spid24s      Server is listening on [ 'any' <ipv4> 1433].
2017-11-23 00:16:39.170 Server       Server is listening on [ ::1 <ipv6> 1434].
2017-11-23 00:16:39.170 Server       Server is listening on [ 127.0.0.1 <ipv4> 1434].
2017-11-23 00:16:39.200 spid24s      Server is listening on [ 127.0.0.1 <ipv4> 39796].

Здесь более внятно написано, но тоже не помогает
sudo ./mssql-conf list
coredump.captureminiandfull                Capture both mini and full core dumps
coredump.coredumptype                      Core dump type to capture: mini, miniplus, filtered, full
filelocation.defaultbackupdir              Default directory for backup files
filelocation.defaultdatadir                Default directory for data files
filelocation.defaultdumpdir                Default directory for crash dump files
filelocation.defaultlogdir                 Default directory for log files
hadr.hadrenabled                           Allow SQL Server to use availability groups for high availability and disaster recovery
language.lcid                              Locale identifier for SQL Server to use (e.g. 1033 for US - English)
memory.memorylimitmb                       SQL Server memory limit (megabytes)
network.forceencryption                    Force encryption of incoming client connections
network.ipaddress                          IP address for incoming connections
network.kerberoskeytabfile                 Kerberos keytab file location
network.tcpport                            TCP port for incoming connections
network.tlscert                            Path to certificate file for encrypting incoming client connections
network.tlsciphers                         TLS ciphers allowed for encrypted incoming client connections
network.tlskey                             Path to private key file for encrypting incoming client connections
network.tlsprotocols                       TLS protocol versions allowed for encrypted incoming client connections
sqlagent.databasemailprofile               SQL Agent Database Mail profile name
sqlagent.errorlogfile                      SQL Agent log file path
sqlagent.errorlogginglevel                 SQL Agent logging level bitmask - 1=Errors, 2=Warnings, 4=Info
telemetry.customerfeedback                 Telemetry status
telemetry.userrequestedlocalauditdirectory Directory for telemetry local audit cache
23 ноя 17, 00:38    [20976647]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
guest97,

У меня есть только предположение. Что это не столько баг, сколько фича.
Ведь MSSQL on Linux должен работать в докере, а там была бага, когда com.docker.network.bridge.host_binding_ipv4 не срабатывал, назначалось 0.0.0.0, ну и веселые парни из Редмонда решили - раз так, забиндим на все ipv4, а далее все, кто захотят, файерволлом закроют по дефолту 1433 и откроют только на нужные IP.
То есть глобальная переменнная как бы есть. Но не факт, что она в реальности используется :)
23 ноя 17, 01:01    [20976665]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
tadeyiloda
Member

Откуда:
Сообщений: 279
а куда вводились команды
select @@VERSION

exec sp_readerrorlog  0,1, 'Server is listening on'

export MSSQL_IP_ADDRESS="127.0.0.1"
env | grep MSSQL_IP_ADDRESS
MSSQL_IP_ADDRESS=127.0.0.1

вводил в sqlcmd но ничего не наблюдал
пришлось через managment studio вбивать

моя версия
Microsoft SQL Server 2017 (RTM-CU1) (KB4038634) - 14.0.3006.16 (X64) Oct 19 2017 02:42:29 Copyright (C) 2017 Microsoft Corporation Express Edition (64-bit) on Linux (Ubuntu 16.04.3 LTS)
24 ноя 17, 10:30    [20980033]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
tadeyiloda
а куда вводились команды

вводил в sqlcmd но ничего не наблюдал

Вот это - в шелл (bash или что-нибудь альтернативное).
export MSSQL_IP_ADDRESS="127.0.0.1"
env | grep MSSQL_IP_ADDRESS
24 ноя 17, 14:06    [20980990]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
tadeyiloda
Member

Откуда:
Сообщений: 279
методом тыка обнаружил что после команды надо вводить GO
тут еще статься насчет удаленного соединения https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-remote-access-server-configuration-option
из SSMS отключать не стал иначе потом не смогу подключиться
вариант через консоль не помог
EXEC sp_configure 'remote access', 0 ;  
24 ноя 17, 16:45    [20981576]     Ответить | Цитировать Сообщить модератору
 Re: sql express linux sqlcmd disable network tcp ip  [new]
tadeyiloda
Member

Откуда:
Сообщений: 279
на форуме МС написали что смена ип не поможет и сиквел будет отзываться в любом случае
так что либо порт менять или брандмауэр закрыть
30 ноя 17, 18:50    [20996380]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить