Перейти к содержимому

Ms sql single user как отключить

  • автор:

Ms sql single user как отключить

SQL2000:
Допустим база находится в singlMode-е и к ней подключен 1 юзер. Из ентерпрайз менеджера перевести базу в другой режим можно, а ват как из другой программы перевести ее в другой режим, если подключиться нельзя?

Re: Как изменить режим Базы из singlemode в другой и наоборо

От: pkarklin
Дата: 10.10.05 07:08
Оценка:

Здравствуйте, Lebets_VI, Вы писали:

L_V>SQL2000:
L_V>Допустим база находится в singlMode-е и к ней подключен 1 юзер. Из ентерпрайз менеджера перевести базу в другой режим можно, а ват как из другой программы перевести ее в другой режим, если подключиться нельзя?

Перевести бд в другой режим и синглмоде можно только в том единственном коннекте. Перевод бд в многопользовательский режим:

ALTER DATABASE DatabaseName SET MULTI_USER

Ms sql single user как отключить

Ну сабж. Начал обновляться, выскочила ошибка (отвалилась шара), теперь база в singleUser. Надо вывести.
Прямое редактирование sysdatabases не получается — сервер не даёт туда записать.

стоп-старт скуля.

(1) не помогает, сделал в первую очередь.

(0) В Enterprise manager-е открываешь свойства базы и снимаешь галочку с «Single User mode»

(3) не пускает, на что-то ругается (что-то типа, база уже работает, не могу получить пропертиз) и отваливается.

Как сбросить пароль SA в Microsoft SQL Server?

date

21.12.2021

user

itpro

directory

SQL Server

comments

комментариев 5

В этой статье мы рассмотрим, как сбросить пароль SA (system administrator) в базе данных Microsoft SQL Server 2019/2017/2014/2011. Данная инструкция поможет вам восстановить доступ к базе данных MSSQL, если вы не можете аутентифицироваться с помощью учетной записи sa (пароль sa был забыт/утерян/учетка отключена) или под пользователем Windows (в настройках доступа отсутствуют пользователи с правами администратора MS SQL).

Локальная учетная запись sa имеет максимальные привилегии в MS SQL. В большинстве случаев она отключена, но вы можете включить ее, задать нужный пароль и восстановить доступ к SQL Server.

Для восстановления доступа к базе данных без полной переустановки экземпляра MS SQL (и с потерей базы master), нужно запустить SQL Server в однопользовательском режиме (single-user mode). В этом однопользовательском режиме вы сможете авторизоваться на SQL Server под любой учетной записью с правами локального администратора на компьютере, на котором установлен MS SQL Server. После этого можно сбросить пароль учетной записи sa и/или предоставить административные права нужной ученой записи Windows.

Совет. Напомним, что, начиная с MS SQL Server 2008, роль sysadmin на SQL сервере по-умолчанию не назначается локальной группе администраторов Windows.

Чтобы запустить MS SQL Server в single-user mode, подключитесь к хосту MSSQL под любой учетной записью с правами локального администратора Windows.

  1. Остановите инстанс SQL Server (в нашем примере имя инстанса MSSQL — MSSQLSERVER) из командной строки net stop MSSQLSERVER или с помощью PowerShell: Get-Service MSSQLSERVER| stop-service остановить службу MSSQLSERVER
  2. Откройте редактор реестра ( regedit.exe ) и перейдите в раздел параметров запуска сервиса SQL: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MSSQLSERVER;
  3. Измените значение параметра ImagePath, добавив в качестве аргумента sqlservr.exe ключ -m. В нашем примере получилось такое значение: «C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe» -sMSSQLSERVER -m запуск mssql в однопользовательском режиме с параметром -m
  4. Запустите службу SQL Server: net start MSSQLSERVER
  5. Теперь ваш SQL Server запущен в однопользовательском режиме и позволяет любому члену локальной группы администраторов (или встроенному администратору Windows) подключаться к экземпляру SQL Server с правами sysadmin.
  6. Запустите SQL Server Management Studio (SSMS) и подключитесь к Database Engine под учетной записью администратора компьютера; SQL Server Management Studio: подключиться к MSSQL под локальным администратором
  7. Перейдите в раздел Security ->Logins и найдите пользователя sa. По умолчанию пользователь sa отключен; полльзователь sa в sql server отключен
  8. Откройте его свойства и на вкладке General задайте новый пароль SA. Затем на вкладке Status включите данного пользователя (Login -> Enabled); сбросить пароль sa в mssql
  9. Чтобы разрешить подключаться к MSSQL с помощью локальных учетных записей SQL (в том числе sa), нужно в свойствах сервера на вкладке Security включить режим аутентификации SQL Server and Windows Authentication mode. Иначе при подключении под локальной учетной записью sa будет появляться ошибка:

Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)

режим аутентфикации mssql: SQL Server and Windows Authentication mode

  • Также в разделе Logins можно добавить нужных пользователей Windows (локальных или доменных) и предоставить им права Server roles ->Sysadmin. Можно предоставить пользователю роль из командной строки sqlcmd:
    EXEC sp_addsrvrolemember ‘DOMAIN\Username’, ‘sysadmin’;)
    GO
    предоставить роль sysadmin для пользователя windows в sql
  • Осталось еще раз остановить службу MSSQL, вернуть начальное значение параметра реестра ImagePart, убрав “-m” ( C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe» -sMSSQLSERVER );
  • Запустите службу SQL Server в обычном режиме;
  • Теперь вы можете подключиться к SQL серверу под учетной записью sa в режиме SQL Server Authentication или под учетной записью Windows, которой вы предоставили права sysadmin в SQL Server.
  • Startup Parameters в настройках SQL Server Configuration Manager

    Совет. Также вы можете запустить SQL Server в однопользовательском режиме с помощью SQL Server Configuration Manager. Для этого нужно в свойствах нужного инстанса перейти на вкладку Startup Parameters и добавить опцию запуска –m.

    Также вы можете использовать командную строку sqlcmd для сброса пароля SA и предоставления доступа к SQL Server.

    1. Запустите SQL Server в однопользовательском режиме как описано выше;
    2. Откройте командную строку и подключитесь к серверу SQL: sqlcmd –S localhost
    3. Чтобы изменить пароль пользователя SA и включить его, выполните следующие команды T-SQL: ALTER LOGIN sa enable
      GO
      ALTER LOGIN sa WITH PASSWORD = ‘newsa_pa$$w0rdd1’

    В этой статье мы показали, как восстановить доступ к SQL Server в single user mode. В этом режиме вы можете сбросить пароль sa (и других пользователей SQL), или предоставить права администратора SQL учетным записям Windows. Однопользовательский режим также можно использовать для восстановления базы temdb в MSSql Server.

    Исправление конфигурации SQL Server в монопольном режиме

    date

    15.07.2020

    user

    insci

    directory

    SQL Server

    comments

    комментария 2

    В этой статье мы рассмотрим запуск MS SQL Server в режиме минимальной конфигурации (аналог Safe Mode), использование режима выделенного административного подключения DAC (Dedicated Admin Connection), а также сценарий запуска SQL Server без tempdb (исходная база повреждена или недоступна) и ручное восстановление этой базы данных.

    Обычно эти методы применяются в аварийных ситуациях, когда SQL Server не запускается, либо с ним невозможно соединиться из-за сильной нагрузки или ошибок в конфигурации, из-за которых SQL Server не может запуститься в нормальном режиме.

    Запуск SQL Server с минимальной конфигурацией, параметр -f

    Если SQL Server не запускается из-за ошибок конфигурации:

    • Отсутствует или повреждена база tempdb;
    • Ошибка в триггере или процедуре, из-за которой невозможно попасть на SQL Server;
    • Любые другие ошибки, связанные с конфигурацией SQL Server.

    В этом случае необходимо запустить SQL Server в режиме минимальной конфигурации или Safe Mode. Для этого нужно добавить параметр -f в строку запуска экземпляра.

    В этом режиме MSSQL запускается с определенной конфигурацией:

    • Сервер запускается в однопользовательском (монопольном) режиме single user
    • Хранимые процедуры, настроенные на запуск при старте сервера не запускаются
    • База tempdb будет сконфигурирована на минимально допустимый размер

    Примечание. Режим минимальной конфигурации используется только для исправления ошибок конфигурации. После внесения правок сервер должен быть перезапущен без параметра -f.

    В монопольном режиме вы можете восстановить повреждённую базу данных master и другиен системные базы данных.

    Восстановление служебной базы данных tempdb через safe mode

    Для примера мы возьмем сценарий, когда файлы базы tempdb на дисковом хранилище полностью утеряны и SQL Server не запускается.

    В логах MSSQL при отсутствующей tempdb будут ошибки вида:

    CREATE FILE encountered operating system error 3(The system cannot find the path specified.) while attempting to open or create the physical file ‘F:\DB\Tempdb.mdf’ Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.
    1. По RDP соединитесь с сервером, где находится нужный вам экземпляр MSSQL;
    2. Откройте SQL Server Configuration Manager, в менеджере зайдите в свойства экземпляра -> Startup Parameters и добавьте параметр –f;

    Также можно использовать команду NET START MSSQLSERVER /f для запуска SQL Server в режиме минимальной конфигурации.

    запуск sql serve в минимальной конфигурации - с параметром f

    Перезагрузите экземпляр SQL Server;

    Совет. После перезагрузки экземпляра, сервер будет работать только с одним соединением. Чтобы это соединение ничего не заняло, выключите SQL Server Agent, ограничьте доступ к SQL Server через фаервол, а также убедитесь, что его не занимают другие администраторы или другие локальные приложения. Вы также можете использовать параметр -m с указанием приложения, с которого вы будете соединяться, например, -mSQLCMD или -m»SQL Server Management Studio» . Поскольку в SQL Server Configuration Manager невозможно задать параметры с кавычками, параметр -m»SQL Server Management Studio» , вы сможете использовать его только запуская SQL Server из командной строки.

    sql management studio подключение к

    Если вы получите подобную ошибку, значит кто-то уже занял соединение.

    Cannot connect to testnode\node2 Login failed for user username. Reason: Server is in single user mode. Only one administrator can connect at this time. (Microsoft SQL Server, Error: 18461)

     SQL Serve Login failed Server is in single user mode. Only one administrator can connect

    Если всё сделано правильно, вы получите доступ к серверу.

    подключение к sql server в безопасном режиме

    Теперь нам нужно изменить пути к испорченной базе tempdb. Выполните следующие T-SQL команды:

    USE master;
    GO
    ALTER DATABASE tempdb
    MODIFY FILE (NAME = tempdev, FILENAME = ‘E:\tempdb.mdf’);
    GO
    ALTER DATABASE tempdb
    MODIFY FILE (NAME = templog, FILENAME = ‘E:\templog.ldf’);
    GO

    Это задаст новую конфигурацию для tempdb. Файлы tempdb будут созданы на диске E:\.

    The file tempdev/templog has been modified in the system catalog. The new path will be used the next time the database is started.

    Заметка. Я помещаю tempdb на этот диск временно, так как чаще всего после аварийного восстановления работы сервера вы захотите перенастроить tempdb, разбив его на несколько файлов данных и изменить путь хранения.

    восстановление tempdb в sql server

    Удалите параметр -f из диспетчера конфигураций SQL Server и перезагрузите экземпляр.

    настройки файлов tempdb в sql server

    С помощью этого режима вы также можете поправить другие проблемы с конфигурацией, например, отключить триггер или процедуру.

    Также для запуска SQL Server в безопасном режиме можно использовать командную строку:

    «C:\Program Files\Microsoft SQL Server\MSSQL15.NODE2\MSSQL\Binn\sqlservr.exe» –c -f -sNODE2″

    Это запустит экземпляр NODE2 в safe mode. Параметр ускоряет загрузку SQL Server при запуске из командой строки. Вы также можете указать параметр -m»SQL Server Management Studio» для ограничения подключений только из SQL студии или -mSQLCMD для подключения только из sqlcmd .

    sqlservr запуск базы в безопасном режиме

    Режим административного подключения (Dedicated Admin Connection) в SQL Server

    Dedicated Admin Connection – это соединение в SQL Server, которое резервируется для подключения администратора. DAC используется только в том случае, если сервер находится под массивной нагрузкой, соединиться обычными способами не получается. для выхода их такой ситуации приходилось перезапускать сервер с потерей всех текущих сеансов пользователей.

    По умолчанию, соединиться с помощью DAC можно только с компьютера, на котором запушен SQL Server. Разрешить удаленные DAC соединения можно через T-SQL (можно сделать это сразу после установки SQL Server).

    Для начала проверим настройку remote admin connections:

    SELECT value
    FROM sys.configurations
    where name like ‘%remote admin connections%’

    Если в результате вы получили value = 0, то значит, удаленный DAC выключен. Чтобы включить его, выполните:

    EXEC sp_configure ‘remote admin connections’, 1;
    GO
    RECONFIGURE
    GO

    Перезагружать экземпляр не надо, конфигурация применяется динамически.

    Совет. Убедитесь, что в фаерволе сервера создано правила для DAC порта. По умолчанию, это порт 1434 (отличается от стандартного порта экземпляра MSSQL) . Вы можете проверить, прослушивается ли этот порт на сервере:

    netstat –aon|findstr 1434

    sql server upd порт 1434 netstat

    Есть два варианта соединение через DAC: с помощью SQL Server Management Studio и с помощью sqlcmd. Официально, DAC соединения не поддерживаются SSMS, и при попытке подключиться к серверу через DAC, вы получите ошибку:

    Dedicated administrator connections are not supported via SSMS as it established multiple connections by design.

    Dedicated administrator connections are not supported via SSMS as it established multiple connections

    Но есть обходной путь, подключение через New Query. Для этого в SQL Studio нажмите на New Query и введите адрес сервера в формате admin:server\instance . “admin:” перед адресом сервера значит, что будет использоваться DAC подключение.

    sql management studio подключение в режиме Dedicated Admin Connection

    После того как вы нажмете Connect, вы можете получить подобную ошибку:

    Failed to connect to server ADMIN:servername\node

    Failed to connect to server в mssql management studio

    Проигнорируйте эту ошибку. Нужно обратить внимание на строку состояния запроса в SSMS

    admin режим подключения к mssqlserver

    Если вы видите состояние Connected на сервер с префиксом ADMIN:, значит вы соединились через DAC.

    Чтобы соединиться с вашим сервером SQL через выделенное административное подключение в sqlcmd, используйте команду:

    sqlcmd -E -A -S testnode2\node2

    • -E – использование trusted connection (Windows аутентификация);
    • -A – использовать DAC подключение;
    • -S имя инстанса sql в формате server\instance

    Если всё сделано правильно, вы соединитесь с сервером

    sqlcmd DAC подключение

    Чтобы убедиться, что вы используете DAC, можно выполнить T-SQL запрос

    SELECT
    COALESCE(ses.login_name, ‘. ‘) AS ‘DACUser’,
    ses.session_id,
    ses.login_time AS ‘Login time’,
    ses.status,
    ses.original_login_name AS ‘Login name’
    FROM sys.endpoints AS en
    JOIN sys.dm_exec_sessions ses
    ON en.endpoint_id = ses.endpoint_id
    WHERE en.name = ‘Dedicated Admin Connection’

    tsql получить статус

    В результате вы получите логин, id сессии и время логина пользователя, использующего DAC.

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *