microsoft / mssql-docker

Official Microsoft repository for SQL Server in Docker resources
MIT License
1.72k stars 759 forks source link

Login Failed for user 'sa' #506

Closed ststeiger closed 5 years ago

ststeiger commented 5 years ago

I installed sql-server 2017 from docker on Ubuntu 18.04 like this:

docker run -d -p 2017:1433 --name mssql_2017 -e "sa_password=PaSSword122!." -e ACCEPT_EULA=Y -e MSSQL_PID="Developer" -v /var/opt/mssql:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest

But no matter to what I set the password, I get: Login Failed for user 'sa'

sqlcmd -S localhost,2017 -U SA -P "PaSSword122!."
sqlcmd -S localhost,2017 -U SA -P "PaSSword122!."
sqlcmd -S tcp:localhost,2017 -U SA -P "PaSSword122!."
sqlcmd -S tcp:127.0.0.1,2017 -U SA -P "PaSSword122!."

I deleted /var/opt/mssql , then recreated it, deleted and re-run the container, but the problem continues to persists...

I have no idea what the problem is. All I get is Login failed for user 'sa' in the error log files in /var/opt/mssql/log.

ststeiger commented 5 years ago
2019-09-24 12:59:21.90 Server      Microsoft SQL Server 2017 (RTM-CU16) (KB4508218) - 14.0.3223.3 (X64) 
    Jul 12 2019 17:43:08 
    Copyright (C) 2017 Microsoft Corporation
    Developer Edition (64-bit) on Linux (Ubuntu 16.04.6 LTS)
2019-09-24 12:59:21.91 Server      UTC adjustment: 0:00
2019-09-24 12:59:21.91 Server      (c) Microsoft Corporation.
2019-09-24 12:59:21.91 Server      All rights reserved.
2019-09-24 12:59:21.91 Server      Server process ID is 32.
2019-09-24 12:59:21.91 Server      Logging SQL Server messages in file '/var/opt/mssql/log/errorlog'.
2019-09-24 12:59:21.91 Server      Registry startup parameters: 
     -d /var/opt/mssql/data/master.mdf
     -l /var/opt/mssql/data/mastlog.ldf
     -e /var/opt/mssql/log/errorlog
2019-09-24 12:59:21.92 Server      SQL Server detected 1 sockets with 2 cores per socket and 4 logical processors per socket, 4 total logical processors; using 4 logical processors based on SQL Server licensing. This is an informational message; no user action is required.
2019-09-24 12:59:21.92 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2019-09-24 12:59:21.92 Server      Detected 6285 MB of RAM. This is an informational message; no user action is required.
2019-09-24 12:59:21.93 Server      Using conventional memory in the memory manager.
2019-09-24 12:59:22.20 Server      Buffer pool extension is already disabled. No action is necessary. 
2019-09-24 12:59:22.34 Server      InitializeExternalUserGroupSid failed. Implied authentication will be disabled.
2019-09-24 12:59:22.34 Server      Implied authentication manager initialization failed. Implied authentication will be disabled.
2019-09-24 12:59:22.34 Server      Successfully initialized the TLS configuration. Allowed TLS protocol versions are ['1.0 1.1 1.2']. Allowed TLS ciphers are ['ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA'].
2019-09-24 12:59:22.39 Server      The maximum number of dedicated administrator connections for this instance is '1'
2019-09-24 12:59:22.39 Server      Node configuration: node 0: CPU mask: 0x000000000000000f:0 Active CPU mask: 0x000000000000000f:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.
2019-09-24 12:59:22.41 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.
2019-09-24 12:59:22.41 Server      In-Memory OLTP initialized on lowend machine.
2019-09-24 12:59:22.46 Server      Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.
2019-09-24 12:59:22.48 Server      Query Store settings initialized with enabled = 1, 
2019-09-24 12:59:22.48 spid5s      Starting up database 'master'.
2019-09-24 12:59:22.48 Server      Software Usage Metrics is disabled.
2019-09-24 12:59:22.61 spid5s      The tail of the log for database master is being rewritten to match the new sector size of 4096 bytes.  3072 bytes at offset 418816 in file /var/opt/mssql/data/mastlog.ldf will be written.
2019-09-24 12:59:22.73 spid5s      Converting database 'master' from version 862 to the current version 869.
2019-09-24 12:59:22.73 spid5s      Database 'master' running the upgrade step from version 862 to version 863.
2019-09-24 12:59:22.75 spid5s      Database 'master' running the upgrade step from version 863 to version 864.
2019-09-24 12:59:22.79 spid5s      Database 'master' running the upgrade step from version 864 to version 865.
2019-09-24 12:59:22.80 spid5s      Database 'master' running the upgrade step from version 865 to version 866.
2019-09-24 12:59:22.82 spid5s      Database 'master' running the upgrade step from version 866 to version 867.
2019-09-24 12:59:22.84 spid5s      Database 'master' running the upgrade step from version 867 to version 868.
2019-09-24 12:59:22.85 spid5s      Database 'master' running the upgrade step from version 868 to version 869.
2019-09-24 12:59:23.06 spid5s      Resource governor reconfiguration succeeded.
2019-09-24 12:59:23.06 spid5s      SQL Server Audit is starting the audits. This is an informational message. No user action is required.
2019-09-24 12:59:23.07 spid5s      SQL Server Audit has started the audits. This is an informational message. No user action is required.
2019-09-24 12:59:23.11 Server      Failed to verify the Authenticode signature of 'C:\binn\secforwarder.dll'. Signature verification of SQL Server DLLs will be skipped. Genuine copies of SQL Server are signed. Failure to verify the Authenticode signature might indicate that this is not an authentic release of SQL Server. Install a genuine copy of SQL Server or contact customer support.
2019-09-24 12:59:23.12 spid5s      SQL Trace ID 1 was started by login "sa".
2019-09-24 12:59:23.16 spid5s      Server name is '1303aa7c6ca8'. This is an informational message only. No user action is required.
2019-09-24 12:59:23.17 spid20s     Always On: The availability replica manager is starting. This is an informational message only. No user action is required.
2019-09-24 12:59:23.17 spid20s     Always On: The availability replica manager is waiting for the instance of SQL Server to allow client connections. This is an informational message only. No user action is required.
2019-09-24 12:59:23.17 spid5s      Starting up database 'msdb'.
2019-09-24 12:59:23.17 spid9s      Starting up database 'mssqlsystemresource'.
2019-09-24 12:59:23.18 spid19s     Password policy update was successful.
2019-09-24 12:59:23.19 spid9s      The resource database build version is 14.00.3223. This is an informational message only. No user action is required.
2019-09-24 12:59:23.22 spid9s      Starting up database 'model'.
2019-09-24 12:59:23.36 spid5s      The tail of the log for database msdb is being rewritten to match the new sector size of 4096 bytes.  512 bytes at offset 306688 in file /var/opt/mssql/data/MSDBLog.ldf will be written.
2019-09-24 12:59:23.38 spid5s      Converting database 'msdb' from version 862 to the current version 869.
2019-09-24 12:59:23.38 spid5s      Database 'msdb' running the upgrade step from version 862 to version 863.
2019-09-24 12:59:23.41 spid9s      The tail of the log for database model is being rewritten to match the new sector size of 4096 bytes.  2048 bytes at offset 75776 in file /var/opt/mssql/data/modellog.ldf will be written.
2019-09-24 12:59:23.44 spid9s      Converting database 'model' from version 862 to the current version 869.
2019-09-24 12:59:23.44 spid9s      Database 'model' running the upgrade step from version 862 to version 863.
2019-09-24 12:59:23.45 spid5s      Database 'msdb' running the upgrade step from version 863 to version 864.
2019-09-24 12:59:23.48 spid9s      Database 'model' running the upgrade step from version 863 to version 864.
2019-09-24 12:59:23.48 spid19s     A self-generated certificate was successfully loaded for encryption.
2019-09-24 12:59:23.49 spid19s     Server is listening on [ 'any' <ipv6> 1433].
2019-09-24 12:59:23.49 spid19s     Server is listening on [ 'any' <ipv4> 1433].
2019-09-24 12:59:23.50 Server      Server is listening on [ ::1 <ipv6> 1434].
2019-09-24 12:59:23.50 Server      Server is listening on [ 127.0.0.1 <ipv4> 1434].
2019-09-24 12:59:23.50 Server      Dedicated admin connection support was established for listening locally on port 1434.
2019-09-24 12:59:23.50 spid5s      Database 'msdb' running the upgrade step from version 864 to version 865.
2019-09-24 12:59:23.50 spid19s     SQL Server is now ready for client connections. This is an informational message; no user action is required.
2019-09-24 12:59:23.52 spid9s      Database 'model' running the upgrade step from version 864 to version 865.
2019-09-24 12:59:23.53 spid5s      Database 'msdb' running the upgrade step from version 865 to version 866.
2019-09-24 12:59:23.55 spid9s      Database 'model' running the upgrade step from version 865 to version 866.
2019-09-24 12:59:23.55 spid5s      Database 'msdb' running the upgrade step from version 866 to version 867.
2019-09-24 12:59:23.57 spid9s      Database 'model' running the upgrade step from version 866 to version 867.
2019-09-24 12:59:23.57 spid5s      Database 'msdb' running the upgrade step from version 867 to version 868.
2019-09-24 12:59:23.59 spid9s      Database 'model' running the upgrade step from version 867 to version 868.
2019-09-24 12:59:23.60 spid5s      Database 'msdb' running the upgrade step from version 868 to version 869.
2019-09-24 12:59:23.65 spid9s      Database 'model' running the upgrade step from version 868 to version 869.
2019-09-24 12:59:23.81 spid9s      Polybase feature disabled.
2019-09-24 12:59:23.82 spid9s      Clearing tempdb database.
2019-09-24 12:59:23.85 Logon       Error: 18456, Severity: 14, State: 7.
2019-09-24 12:59:23.85 Logon       Login failed for user 'SA'. Reason: An error occurred while evaluating the password. [CLIENT: 172.17.0.1]
2019-09-24 12:59:24.22 spid9s      Starting up database 'tempdb'.
2019-09-24 12:59:24.48 spid9s      The tempdb database has 1 data file(s).
2019-09-24 12:59:24.49 spid24s     The Service Broker endpoint is in disabled or stopped state.
2019-09-24 12:59:24.50 spid24s     The Database Mirroring endpoint is in disabled or stopped state.
2019-09-24 12:59:24.51 spid24s     Service Broker manager has started.
2019-09-24 12:59:24.65 spid5s      Recovery is complete. This is an informational message only. No user action is required.
2019-09-24 12:59:24.69 spid20s     The default language (LCID 0) has been set for engine and full-text services.
nocentino commented 5 years ago

Hi Stefan, the parameter passed should be MSSQL_SA_PASSWORD rather than sa_password.

Check out the set of available variables here: https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-2017

Thanks, Anthony

ststeiger commented 5 years ago

Aaaargh, outdated tutorial. Thanks & sorry, works.

ststeiger commented 5 years ago

Password policy: https://github.com/microsoft/mssql-docker/issues/319#issuecomment-394199918

gromilQaaaa commented 4 years ago

OKAY so in the end I found out when I wrote password like this in docker-compose: MSSQL_SA_PASSWORD="123" It really got written as "123", so when you log in - write password with quotes

AhmedKhalil777 commented 3 years ago

I have the same issue in my latest 2019 SQL Server

services: my.api: image: ${DOCKER_REGISTRY-}myapi environment:

the issue

Unhandled exception. Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'SA'.
   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at Microsoft.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool, SqlAuthenticationProviderManager sqlAuthProviderManager)
   at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at Microsoft.Data.SqlClient.SqlConnection.Open()
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass18_0.<Exists>b__0(DateTime giveUp)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__DisplayClass12_0`2.<Execute>b__0(DbContext c, TState s)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func`2 operation, Func`2 verifySucceeded)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func`2 operation)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
   at Billboard.API.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env) in F:\Work\Bdaya\billboard.api\Billboard.API\Startup.cs:line 94
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__2(IApplicationBuilder app)
   at Microsoft.Extensions.DependencyInjection.AutoRegisterMiddleware.<>c__DisplayClass4_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at Billboard.API.Program.Main(String[] args) in F:\Work\Work\my.api\my.API\Program.cs:line 16
ClientConnectionId:184f48de-bce2-4754-8e3a-abe6a857326c
Error Number:18456,State:1,Class:14
Aborted
AlessandroAlbi commented 3 years ago

I have the same issue in my latest 2019 SQL Server

  • My docker compose is like
version: '3.7'

services:
  my.api:
    image: ${DOCKER_REGISTRY-}myapi
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_HTTPS_PORT=5001
    build:
      context: .
      dockerfile: My.API/Dockerfile
    ports:
      - "5000:80"
      - "5001:443"
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
    depends_on: 
      - sqldata

  sqldata:
    container_name: sqldata
    image: mcr.microsoft.com/mssql/server:2019-latest
    environment:
      - ACCEPT_EULA=Y
      - MSSQL_SA_PASSWORD=Pass@word    
    ports:
      - "5433:1433"

and this is my connection string

    "DockerConnection": "Server=sqldata;Database=MyAPIDB;User Id=SA;Password=Pass@word;",

the issue

Unhandled exception. Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'SA'.
   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at Microsoft.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool, SqlAuthenticationProviderManager sqlAuthProviderManager)
   at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at Microsoft.Data.SqlClient.SqlConnection.Open()
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass18_0.<Exists>b__0(DateTime giveUp)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__DisplayClass12_0`2.<Execute>b__0(DbContext c, TState s)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func`2 operation, Func`2 verifySucceeded)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func`2 operation)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists()
   at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
   at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
   at Billboard.API.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env) in F:\Work\Bdaya\billboard.api\Billboard.API\Startup.cs:line 94
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__2(IApplicationBuilder app)
   at Microsoft.Extensions.DependencyInjection.AutoRegisterMiddleware.<>c__DisplayClass4_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at Billboard.API.Program.Main(String[] args) in F:\Work\Work\my.api\my.API\Program.cs:line 16
ClientConnectionId:184f48de-bce2-4754-8e3a-abe6a857326c
Error Number:18456,State:1,Class:14
Aborted

I'm in the exact same situation, have you find a solution?

DanSau24 commented 3 years ago

got the same error

2021-06-06 22:53:33.83 spid7s Starting up database 'tempdb'. 2021-06-06 22:53:33.83 Logon Error: 18456, Severity: 14, State: 7. 2021-06-06 22:53:33.83 Logon Login failed for user 'sa'. Reason: An error occurred while evaluating the password. [CLIENT: 172.18.0.3] dockersqlserver_1 | fail: DockerSqlServer.Program[0] dockersqlserver_1 | An error occurred while migrating or seeding the database. dockersqlserver_1 | Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'sa'. dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) dockersqlserver_1 | at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) dockersqlserver_1 | at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) dockersqlserver_1 | at Microsoft.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool, SqlAuthenticationProviderManager sqlAuthProviderManager) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlConnection.Open() dockersqlserver_1 | at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>cDisplayClass18_0.b__0(DateTime giveUp) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>cDisplayClass12_02.<Execute>b__0(DbContext c, TState s) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func3 operation, Func3 verifySucceeded) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func2 operation, Func2 verifySucceeded) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func2 operation) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists() dockersqlserver_1 | at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists() dockersqlserver_1 | at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade) dockersqlserver_1 | at DockerSqlServer.Program.Main(String[] args) in /src/DockerSqlServer/Program.cs:line 26 dockersqlserver_1 | ClientConnectionId:157a12b5-ab85-4eba-a802-4a318d7d183a dockersqlserver_1 | Error Number:18456,State:1,Class:14 dockersqlserver_1 | Unhandled exception. Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'sa'. dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) dockersqlserver_1 | at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) dockersqlserver_1 | at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) dockersqlserver_1 | at Microsoft.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool, SqlAuthenticationProviderManager sqlAuthProviderManager) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) dockersqlserver_1 | at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource1 retry) dockersqlserver_1 | at Microsoft.Data.SqlClient.SqlConnection.Open() dockersqlserver_1 | at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>cDisplayClass18_0.b__0(DateTime giveUp) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>cDisplayClass12_02.<Execute>b__0(DbContext c, TState s) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func3 operation, Func3 verifySucceeded) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func2 operation, Func2 verifySucceeded) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func2 operation) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists() dockersqlserver_1 | at Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists() dockersqlserver_1 | at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) dockersqlserver_1 | at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade) dockersqlserver_1 | at DockerSqlServer.Program.Main(String[] args) in /src/DockerSqlServer/Program.cs:line 26 dockersqlserver_1 | at DockerSqlServer.Program.

(String[] args) dockersqlserver_1 | ClientConnectionId:157a12b5-ab85-4eba-a802-4a318d7d183a

docker compose file

version: '3.4'

services: db: image: "mcr.microsoft.com/mssql/server:2017-latest" environment:

  • ACCEPT_EULA=Y
  • SA_PASSWORD=Password@12345 ports:
  • "1433:1433"

    dockersqlserver: image: ${DOCKER_REGISTRY-}dockersqlserver build: context: . dockerfile: DockerSqlServer/Dockerfile ports:

  • "9080:80" depends_on:
  • db
NemesLaszlo commented 3 years ago

Hi,

My working solution for this problem: (This is small book management app in .NET 5 and MSSQL for presentation)

First the Dockerfile:

# Get the base image
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env
WORKDIR /app

# Copy the csproj and restore all of the nugets
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM mcr.microsoft.com/dotnet/sdk:5.0
WORKDIR /app
EXPOSE 80
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "BookManagement.dll"]

In the Program.cs file add this line to avoid this: "Unable to bind to https://localhost:5000 on the IPv6 loopback interface"

webBuilder.UseUrls("http://*:80");
        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseUrls("http://*:80");
                    webBuilder.UseStartup<Startup>();
                });

Then the docker-compose file:

version: '3'
services:

  ms-sql-server:
    image: mcr.microsoft.com/mssql/server:2017-latest-ubuntu
    environment:
      ACCEPT_EULA: "Y"
      SA_PASSWORD: "SuperSecurePasswordBookProject123"
      MSSQL_PID: Express
    ports:
      - "1433:1433"
    networks:
      - book-app-network

  book-app:
    build: .
    depends_on:
      - ms-sql-server
    networks:
      - book-app-network
    environment:
      DbServer: "ms-sql-server"
      DbPort: "1433"
      DbUser: "sa"
      Password: "SuperSecurePasswordBookProject123"
      Database: "bookDb"
    ports: 
      - "8090:80"

# Networks to be created to facilitate communication between containers
networks:
  book-app-network:

I know the docker-compose creates a network, but I also wrote that into to file.

Write "sa" instead of "SA", and use strong password which accepted by the rules. (At least 8 characters including uppercase, lowercase letters, base-10 digits and/or non-alphanumeric symbols.) https://hub.docker.com/_/microsoft-mssql-server

Hope it helps.