Установка однопользовательского режима базы данных
В этой статье описывается, как настроить определяемую пользователем базу данных в однопользовательском режиме в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Однопользовательский режим указывает, что одновременный доступ к базе данных получает только один пользователь. Это в основном используется для операций обслуживания.
ограничения
- Если в процессе установки однопользовательского режима к базе данных подключены другие пользователи, то их подключения к базе данных будут закрыты без предупреждения.
- База данных остается в однопользовательском режиме даже после отключения параметра. В этот момент к базе данных могут подключаться и другие пользователи, но одновременно может быть подключен только один.
Предварительные условия
- Перед заданием параметра SINGLE_USER проверьте, чтобы параметру AUTO_UPDATE_STATISTICS_ASYNC было присвоено значение OFF. Если этот параметр имеет значение ON, то фоновый поток, используемый для обновления статистики, соединится с базой данных и доступ к базе данных в однопользовательском режиме будет невозможен. Дополнительные сведения см. в статье Параметры ALTER DATABASE SET (Transact-SQL).
Разрешения
Необходимо разрешение ALTER в базе данных.
Использование среды SQL Server Management Studio
Чтобы установить однопользовательский режим для базы данных, выполните следующие действия:
- В обозревателе объектов подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните этот экземпляр.
- Щелкните правой кнопкой мыши базу данных, которую нужно изменить, и выберите пункт Свойства.
- В диалоговом окне Свойства базы данных выберите страницу Параметры.
- Для параметра Ограничение доступа выберите Один.
- Если к базе данных подключены другие пользователи, то появится сообщение Открытые соединения . Чтобы изменить свойство и закрыть все остальные подключения, нажмите кнопку Да.
С помощью этой процедуры можно также установить режим одновременного или ограниченного доступа к базе данных. Дополнительные сведения о параметрах ограничения доступа см. в разделе «Свойства базы данных» (страница «Параметры»).
Использование Transact-SQL
Чтобы установить однопользовательский режим для базы данных, выполните следующие действия:
- Соединитесь с ядром СУБД .
- На стандартной панели выберите пункт Создать запрос.
- Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере база данных устанавливается в режим SINGLE_USER для получения монопольного доступа. Затем состояние базы данных AdventureWorks2022 устанавливается в READ_ONLY , а также возвращается доступ к базе данных всем пользователям.
Чтобы быстро получить монопольный доступ, в примере кода используется параметр завершения WITH ROLLBACK IMMEDIATE . Произойдет откат всех незавершенных транзакций, а любые другие соединения с базой данных AdventureWorks2022 будут немедленно разорваны.
USE master; GO ALTER DATABASE AdventureWorks2022 SET SINGLE_USER WITH ROLLBACK IMMEDIATE; GO ALTER DATABASE AdventureWorks2022 SET READ_ONLY; GO ALTER DATABASE AdventureWorks2022 SET MULTI_USER; GO
Далее
MSSQLSERVER_4064
Имя входа SQL Server не удалось подключиться к SQL Server, либо из-за проблем с разрешением пользователя базы данных, связанного с именем входа в базе данных по умолчанию, либо с проблемой со своей базой данных по умолчанию.
Проблемы с разрешениями могут быть одним или несколькими из следующих:
- Имя входа не имеет соответствующего сопоставленного пользователя в базе данных по умолчанию.
- Вы назначили базу данных по умолчанию для входа, но не создали сопоставление пользователей в указанной базе данных.
- Сопоставленный пользователь для имени входа был отказано в доступе. (Например, это может произойти, если пользователь непреднамеренно добавляется в предопределенную роль базы данных db_denydatareader .)
База данных по умолчанию может быть недоступна во время подключения по следующим причинам:
- База данных по умолчанию находится в режиме подозрения.
- База данных по умолчанию больше не существует.
- База данных по умолчанию находится в однопользовательском режиме, и единственное доступное подключение уже используется кем-то или другим.
- База данных по умолчанию отключена.
- База данных по умолчанию имеет состояние RESTRICTED_USER.
- База данных по умолчанию находится в автономном режиме.
- Для базы данных по умолчанию задано состояние ЭКСТРЕННОГО РЕАГИРОВАНИЯ.
- База данных по умолчанию является частью зеркального отображения базы данных.
Кроме того, учетная запись входа может быть членом нескольких групп, а база данных по умолчанию для одной из этих групп недоступна во время подключения.
Дополнительные сведения о пользователях базы данных в SQL Server см. в разделе «Создание пользователя базы данных».
Действие пользователя
Вы можете выполнить одно из следующих действий:
Обход проблемы
Если вам не нужно получить доступ к текущей настроенной базе данных по умолчанию и вам просто нужно подключиться к экземпляру SQL Server для других операций с помощью SQL Server Management Studio (SSMS), выполните следующие действия:
- Откройте SQL Server Management Studio (SSMS).
- В обозревателе объектов выберите «Подключить>ядро СУБД».
- Заполните диалоговое окно «Подключение к серверу «.
- Выберите Параметры.
- В разделе «Свойства подключения» измените значение подключения к базе данных с помощью одного из следующих параметров:
- Если имя входа является членом роли sysadmin, введите master и выберите «Подключиться «, чтобы установить подключение к SQL Server. После успешного подключения к SQL Server можно изменить базу данных по умолчанию на другую, которая в настоящее время доступна на странице «Общие » свойств входа в SSMS. Дополнительные сведения см. в разделе Создание имени входа.
- Если имя входа не является членом роли sysadmin, введите имя базы данных на сервере, к которому у вас есть доступ. Кроме того, можно попробовать ввести имя системной базы данных, например master , а затем нажмите кнопку «Подключить». Этот шаг может не работать, если системный администратор явно отказался от разрешений гостевого master пользователя в базе данных. В этом сценарии необходимо работать с системным администратором, чтобы устранить проблему.
Устранение проблемы
Системный администратор может проверить, является ли текущая база данных по умолчанию пользователя, с помощью следующего запроса:
SELECT name, default_database_name FROM sys.server_principals WHERE type = 'S' AND name = '';
Используйте следующую таблицу, чтобы определить соответствующее действие для устранения проблемы для связанных причин:
| Причина | Решение |
|---|---|
| В базе данных по умолчанию для входа не существует сопоставления пользователей или пользователь был отказано в доступе. | Эти пользователи базы данных также называются потерянными пользователями. Эта проблема обычно возникает при перемещении баз данных между двумя экземплярами сервера и является одной из распространенных причин ошибки 4064. Сведения об обнаружении потерянных пользователей и устранении этой проблемы см. в статье «Устранение неполадок потерянных пользователей (SQL Server)». |
| Для входа не существует пользователя базы данных | Создайте пользователя базы данных и назначьте соответствующие разрешения для доступа к базе данных. |
| Учетные записи пользователя базы данных запрещены разрешения на доступ к базе данных | Перейдите к свойствам пользователя в базе данных (разверните пользователей системы безопасности > узла> базы данных) и проверьте, является ли пользователь частью db_denydatareader роли на странице членства. Вы также можете проверить действующие разрешения пользователя с помощью sys.fn_my_permissions. |
| База данных по умолчанию находится в режиме подозрения. | База данных может перейти в состояние SUSPECT по нескольким причинам. Возможные причины включают отказ в доступе к ресурсу базы данных операционной системой и недоступность или повреждение одного или нескольких файлов базы данных. Вы можете проверить состояние базы данных с помощью этого запроса: SELECT DATABASEPROPERTYEX (N», N’STATUS’) AS N’Database Status’; В SSMS состояние подозрительных баз данных отображается как (ожидание восстановления). Чтобы устранить эту ситуацию, может потребоваться восстановить базу данных из резервной копии. |
| База данных по умолчанию больше не существует. | Если вы намеренно удалили базу данных с сервера, измените базу данных по умолчанию для входа на другую существующую базу данных на сервере с помощью SSMS или инструкции ALTER LOGIN (Transact-SQL). При необходимости может потребоваться проверить наличие других имен входа на сервере, для которой для базы данных по умолчанию задана эта не существующая база данных с помощью этого запроса: SELECT name AS Login_Name FROM sys.server_principals where default_database_name = »; |
| База данных по умолчанию находится в однопользовательском режиме, а единственное подключение используется администратором или другим пользователем. | Если для целей обслуживания для базы данных задан режим с одним пользователем, его следует вернуть в режим с несколькими пользователями после завершения действия обслуживания, используя следующий запрос: ALTER DATABASE SET MULTI_USER; Дополнительные сведения см. в разделе «Настройка базы данных в однопользовательском режиме». Примечание. Чтобы проверить, находится ли база данных в однопользовательском режиме, можно использовать следующий запрос: SELECT name, user_access_desc FROM sys.databases WHERE name = »; Если вам по-прежнему нужно ограничить доступ к базе данных, но хотите включить подключение к затронутым именам входа, измените базу данных по умолчанию на другую базу данных на сервере. |
| База данных по умолчанию отключена. | Отключение базы данных удаляет ее из экземпляра SQL Server и больше не доступно. Чтобы сделать его доступным для входа, подключите базу данных с помощью SSMS или sp_attach_db хранимой процедуры. Дополнительные сведения см. в разделе «Отсоединение базы данных» и «Подключение» (SQL Server). |
| Для базы данных по умолчанию задано состояние RESTRICTED_USER. | Если для базы данных задано состояние RESTRICTED_USER, только члены предопределенных ролей базы данных db_owner, а также предопределенных ролей сервера dbcreator и sysadmin могут подключаться к базе данных. Если вам больше не нужно ограничивать доступ к соответствующей базе данных, задайте для базы данных многопользовательский режим, используя следующий запрос: ALTER DATABASE SET MULTI_USER; Примечание. Чтобы проверить, находится ли база данных в состоянии ограниченного пользователя, можно использовать следующий запрос: SELECT name, user_access_desc FROM sys.databases WHERE name = »; Если вам по-прежнему нужно ограничить доступ к базе данных, но хотите включить подключение к затронутым именам входа, измените базу данных по умолчанию на другую базу данных на сервере. |
| База данных по умолчанию находится в автономном режиме. | Невозможно изменить базу данных, которая находится в автономном состоянии. Вы можете перевести базу данных в режим «в сети», используя следующий запрос: ALTER database SET ONLINE; Можно проверить, является ли база данных автономной либо с помощью SSMS, либо с помощью этого запроса: SELECT DATABASEPROPERTYEX (N», N’STATUS’) AS N’Database Status’; Дополнительные сведения см. в разделе «Состояния базы данных» и параметры ALTER DATABASE SET (Transact-SQL) — SQL Server. Если необходимо сохранить базу данных в автономном состоянии, но хотите включить подключение к затронутым именам входа, измените базу данных по умолчанию на другую базу данных на сервере. |
| Для базы данных по умолчанию задано состояние ЭКСТРЕННОГО РЕАГИРОВАНИЯ. | Возможно, база данных была помещена в состояние аварийного реагирования для устранения неполадок системным администратором. Только пользователи роли sysadmin могут получить доступ к базам данных, заданным для состояния ЧРЕЗВЫЧАЙНОЙ СИТУАЦИи. Вы можете перевести базу данных в режим «в сети», используя следующий запрос: ALTER database SET ONLINE; Можно проверить, находится ли база данных в состоянии аварийного реагирования с помощью SSMS или этого запроса: SELECT DATABASEPROPERTYEX (N», N’STATUS’) AS N’Database Status’; Дополнительные сведения см. в разделе «Состояния базы данных» и параметры ALTER DATABASE SET (Transact-SQL). Если вам по-прежнему нужно сохранить базу данных в состоянии АВАРИЙНОго реагирования, но хотите включить подключение к затронутым именам входа, измените базу данных по умолчанию на другую базу данных на сервере. |
| База данных по умолчанию является частью зеркального отображения базы данных. | Вы не можете подключиться к зеркальной базе данных на зеркальном сервере, и это поведение выполняется путем проектирования. Чтобы проверить, находится ли база данных в зеркальной роли, используйте этот запрос SELECT DB_NAME(database_id) as database_name, mirroring_role_desc FROM sys.database_mirroring WHERE DB_NAME(database_id) = »; . Дополнительные сведения о зеркальных отображениях баз данных см. в разделе «Зеркальное отображение базы данных» (SQL Server). |
| Учетная запись входа может быть членом нескольких групп, а база данных по умолчанию для одной из групп недоступна во время подключения. | Чтобы перечислить группы с указанным пользователем с помощью PowerShell, см. статью Get-ADPrincipalGroupMembership (ActiveDirectory). |
Изменение базы данных по умолчанию для данного пользователя
Чтобы внести изменения в базу данных пользователя по умолчанию, необходимо иметь разрешение ALTER ANY LOGIN. Если измененное имя входа является членом предопределенных ролей сервера sysadmin или участника разрешения CONTROL SERVER, при внесении следующих изменений также требуется разрешение CONTROL SERVER. Члены роли sysadmin имеют эти разрешения по умолчанию. Дополнительные сведения см. в разделе ALTER LOGIN (Transact-SQL).
- Среда SQL Server Management Studio
- Служебная программа sqlcmd
- PowerShell
Изменение базы данных по умолчанию с помощью SSMS
- Подключитесь к экземпляру SQL Server с помощью SQL Server Management Studio (SSMS).
- Выберите «Имена входа безопасности> «, чтобы найти пользователя и изменить базу данных пользователя по умолчанию на другую, которая в настоящее время доступна на странице «Общие» свойств входа в SSMS. Дополнительные сведения см. в разделе Создание имени входа.
- После подключения к экземпляру SQL Server можно выполнить инструкцию ALTER LOGIN , как показано в следующих примерах: ALTER LOGIN WITH DEFAULT_DATABASE = ; — это заполнитель для имени существующей базы данных, к которым можно получить доступ с помощью имени входа SQL Server в экземпляре. — заполнитель для входа SQL Server с необходимыми ALTER LOGIN разрешениями. Например:
ALTER LOGIN [SQLLogin] WITH DEFAULT_DATABASE = master; ALTER LOGIN [Constoso\Windowslogin] WITH DEFAULT_DATABASE = [AdventureWorks];
Изменение базы данных по умолчанию с помощью служебной программы sqlcmd
Чтобы изменить базу данных по умолчанию, можно использовать следующую процедуру, используя служебную программу sqlcmd:
- На компьютере под управлением SQL Server нажмите кнопку «Пуск», а затем нажмите кнопку «Запустить«, введите и нажмите клавишу ВВОД cmd .
- Подключитесь к SQL Server с помощью служебной программы sqlcmd и одного из следующих параметров:
- Если вы хотите использовать проверку подлинности Windows для подключения к экземпляру с помощью учетной записи пользователя Windows, вошедшего в систему, введите следующую команду в окне командной строки и нажмите клавишу ВВОД: sqlcmd -E -S -d master Например:
sqlcmd -S "contoso\sql22" -E -d master
sqlcmd -S contososql -U sqladmin -P
ALTER LOGIN [SQLLogin] WITH DEFAULT_DATABASE = master; ALTER LOGIN [Constoso\Windowslogin] WITH DEFAULT_DATABASE = [AdventureWorks];
Изменение базы данных по умолчанию с помощью PowerShell
Для обновления базы данных по умолчанию для указанного имени входа можно использовать следующий скрипт PowerShell.
# Define the variables for the SQL Server instance name and login name $instanceName = "YOUR_SQL_SERVER_INSTANCE_NAME" $loginName = "YOUR_SQL_SERVER_LOGIN_NAME" $newDefaultDB = "YOUR_NEW_DEFAULT_DATABASE" # Connect to the SQL Server instance $connectionString = "Server=$instanceName;Integrated Security=True" $connection = New-Object System.Data.SqlClient.SqlConnection($connectionString) $connection.Open() # Execute a T-SQL command to change the default database for the specified login $tsql = "ALTER LOGIN $loginName WITH DEFAULT_DATABASE = $newDefaultDB" $command = New-Object System.Data.SqlClient.SqlCommand($tsql, $connection) $command.ExecuteNonQuery() # Print a message indicating the update was successful Write-Host "The default database for the login '$loginName' has been successfully updated to '$newDefaultDB'" # Close the SQL Server connection $connection.Close()
Ошибка 18456 отображается вместе с ошибкой 4064
При использовании таких приложений, как SSMS, которые получают ошибку 4064, отображаемой пользователю, в журнал ошибок SQL Server регистрируется следующее сообщение. В этом весь замысел. Исправление базы данных по умолчанию для неудачного входа с помощью процедур, описанных в этой статье, автоматически устраняет ошибку 18456.
2023-02-06 18:17:02.56 Logon Error: 18456, Severity: 14, State: 40. 2023-02-06 18:17:02.56 Logon Login failed for user '. Reason: Failed to open the database '' specified in the login properties. [CLIENT: ]
Обратная связь
Были ли сведения на этой странице полезными?
SSMS 19 RUS не устанавливается, как исправить?
Недавно установил Sql Server Management Studio 19 в обычном варианте (Английский) на компьютер с 11 виндовс.
Там не было русского языка, погуглил, попробовал установить версию на Русском (официальную), но при открытии сообщение с требованием наличия пакета соответствующего языка. Попробовал в
Tools
на обычной версии. Не получилось.
spoiler

- Вопрос задан 13 дек. 2023
- 77 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 1

Здесь отвечаю на вопросы.
Как и написано: полностью, включая Visual Studio Tools for Applications и Azure Data Studio, удалить текущую версию и заново запустить установку SSMS-Setup-RUS.exe
Скачивание SSMS. Установка локализованных версий SSMS.
Ответ написан 13 дек. 2023
Сведения о проблемах системы безопасности, устраняемых обновлением iTunes 12.9.5 для Windows
В этом документе описаны проблемы системы безопасности, устраняемые обновлением iTunes 12.9.5 для Windows.
Сведения об обновлениях системы безопасности Apple
В целях защиты клиентов компания Apple не разглашает информацию о проблемах безопасности, не подтверждает ее и не участвует в ее обсуждении до тех пор, пока не будет завершено изучение соответствующей проблемы и не будут опубликованы исправления или новые выпуски. Список последних выпусков представлен на странице Обновления системы безопасности Apple.
В документах Apple о безопасности уязвимости идентифицируются с помощью кода CVE-ID, когда это возможно.
Дополнительную информацию о безопасности см. на странице Безопасность продуктов Apple.
iTunes 12.9.5 для Windows
Дата выпуска: 28 мая 2019 г.
Целевые продукты: Windows 7 и более поздней версии
Воздействие. Обработка вредоносного шрифта может приводить к раскрытию памяти процессов.
Описание. Проблема чтения за границами выделенной области памяти устранена путем улучшенной проверки границ.
CVE-2019-8582: пользователь riusksk из VulWar Corp, сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
Запись добавлена 12 сентября 2019г.
Целевые продукты: Windows 7 и более поздней версии
Воздействие. Программа может получить повышенные привилегии.
Описание. Проблема проверки ввода устранена путем улучшенной обработки памяти.
CVE-2019-8577: Омер Галл (Omer Gull) из Checkpoint Research
Целевые продукты: Windows 7 и более поздней версии
Воздействие. Вредоносный SQL-запрос может приводить к выполнению произвольного кода.
Описание. Проблема с повреждением данных в памяти устранена путем улучшенной проверки ввода.
CVE-2019-8600: Омер Галл (Omer Gull) из Checkpoint Research
Целевые продукты: Windows 7 и более поздней версии
Воздействие. Вредоносная программа может считывать данные из области памяти с ограниченным доступом.
Описание. Проблема проверки ввода устранена путем улучшенной проверки ввода.
CVE-2019-8598: Омер Галл (Omer Gull) из Checkpoint Research
Целевые продукты: Windows 7 и более поздней версии
Воздействие. Вредоносная программа может повышать уровень привилегий.
Описание. Проблема с повреждением данных в памяти устранена путем удаления уязвимого кода.
CVE-2019-8602: Омер Галл (Omer Gull) из Checkpoint Research
Целевые продукты: Windows 7 и более поздней версии
Воздействие. Обработка вредоносного веб-содержимого может приводить к раскрытию памяти процессов.
Описание. Проблема чтения за границами выделенной области памяти устранена путем улучшенной проверки ввода.
CVE-2019-8607: Чунхо Джанг (Junho Jang) и Ханул Чой (Hanul Choi) из LINE Security Team
Целевые продукты: Windows 7 и более поздней версии
Воздействие. Обработка вредоносного веб-содержимого может приводить к выполнению произвольного кода.
Описание. Ряд проблем с повреждением данных в памяти устранен путем улучшенной обработки памяти.
CVE-2019-6237: Дж. Джешев (G. Geshev), сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative, и Лю Лун (Liu Long) из группы Vulcan в Qihoo 360
CVE-2019-8571: пользователь 01, сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
CVE-2019-8583: пользователь sakura из отдела Xuanwu Lab компании Tencent, пользователь jessica (@babyjess1ca_) из отдела Keen Lab компании Tencent и пользователь dwfault из подразделения ADLab компании Venustech
CVE-2019-8584: Дж. Джешев (G. Geshev) из MWR Labs, сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
CVE-2019-8586: анонимный исследователь
CVE-2019-8587: Дж. Джешев (G. Geshev), сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
CVE-2019-8594: Сён Ли (Suyoung Lee) и Суэль Сон (Sooel Son) из лаборатории института KAIST, занимающейся вопросами безопасности и конфиденциальности в Интернете, а также Хёнсок Хан (HyungSeok Han) и Сан Кил Ча (Sang Kil Cha) из лаборатории SoftSec института KAIST
CVE-2019-8595: Дж. Джешев (G. Geshev) из MWR Labs, сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
CVE-2019-8596: Вэнь Сюй (Wen Xu) из подразделения SSLab Технологического института Джорджии
CVE-2019-8597: пользователь 01, сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
CVE-2019-8601: пользователь Fluoroacetate, сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
CVE-2019-8608: Дж. Джешев (G. Geshev), сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
CVE-2019-8609: Вэнь Сюй (Wen Xu) из подразделения SSLab Технологического института Джорджии
CVE-2019-8610: пользователь Anonymous, сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
CVE-2019-8611: Самуэль Гросс (Samuel Groß) из подразделения Google Project Zero
CVE-2019-8615: Дж. Джешев (G. Geshev) из MWR Labs, сотрудничающий с компанией Trend Micro в рамках программы Zero Day Initiative
CVE-2019-8619: Вэнь Сюй (Wen Xu) из подразделения SSLab Технологического института Джорджии и Ханьцин Чжао (Hanqing Zhao) из группы Chaitin Security Research Lab
CVE-2019-8622: Самуэль Гросс (Samuel Groß) из подразделения Google Project Zero
CVE-2019-8623: Самуэль Гросс (Samuel Groß) из подразделения Google Project Zero
CVE-2019-8628: Вэнь Сюй (Wen Xu) из подразделения SSLab Технологического института Джорджии и Ханьцин Чжао (Hanqing Zhao) из группы Chaitin Security Research Lab
Информация о продуктах, произведенных не компанией Apple, или о независимых веб-сайтах, неподконтрольных и не тестируемых компанией Apple, не носит рекомендательного или одобрительного характера. Компания Apple не несет никакой ответственности за выбор, функциональность и использование веб-сайтов или продукции сторонних производителей. Компания Apple также не несет ответственности за точность или достоверность данных, размещенных на веб-сайтах сторонних производителей. Обратитесь к поставщику за дополнительной информацией.