Sid set что это
Смена SID при клонировании и массовом развёртывании
Привет, Хабр! Упомянутая в заголовке тема всё ещё порождает множественные дискуссии и недопонимание между системными администраторами. В своей статье я постараюсь ответить на следующие вопросы:
В основу рассуждений была взята популярная статья Марка Руссиновича (доступна также на русском языке), которую довольно часто неправильно интерпретируют (судя по комментариям и «статьям-ответам»), что приводит к неприятным последствиям. Добро пожаловать под кат.
Что такое SID, его типы и чем отличается Machine SID от Domain SID?
В первую очередь, важно различать SID компьютера (Machine SID) и SID домена (Domain SID), которые являются независимыми и используются в разных операциях.
Machine SID и Domain SID состоят из базового SID’а (base SID) и относительного SID’а (Relative SID = RID), который «приклеивается» в конец к базовому. Базовый SID можно рассматривать как сущность, в рамках которой можно определить группы и аккаунты. Машина (компьютер) является сущностью, в рамках которой определяются локальные группы и аккаунты. Каждой машине присваивается machine SID, и SID’ы всех локальных групп и аккаунтов включают в себя этот Machine SID с добавлением RID в конце. Для примера:
Machine SID для машины с именем DEMOSYSTEM | S-1-5-21-3419697060-3810377854-678604692 |
DEMOSYSTEM\Administrator | S-1-5-21-3419697060-3810377854-678604692-500 |
DEMOSYSTEM\Guest | S-1-5-21-3419697060-3810377854-678604692-501 |
DEMOSYSTEM\CustomAccount1 | S-1-5-21-3419697060-3810377854-678604692-1000 |
DEMOSYSTEM\CustomAccount2 | S-1-5-21-3419697060-3810377854-678604692-1001 |
Именно SID’ы (а не имена) хранятся в токенах доступа (access tokens) и дескрипторах безопасности (security descriptors), и именно SID’ы используются при проверке возможности доступа к объектам системы Windows (в том числе, например, к файлам).
На машине вне домена используются локальные SID’ы, описанные выше. Соответственно, при соединении с машиной удалённо используется локальная аутентификация, поэтому даже имея 2 или более машин с одинаковым machine SID в одной сети вне домена, проблем с логином и работой внутри системы не будет, т.к. SID’ы в операциях удалённой аутентификации попросту не используются. Единственный случай, в котором возможны проблемы, это полное совпадение имени пользователя и пароля на двух машинах – тогда, например, RDP между ними может глючить.
Когда машина добавляется в домен, в игру вступает новый SID, который генерируется на этапе добавления. Machine SID никуда не девается, так же как и локальные группы, и пользователи. Этот новый SID используется для представления аккаунта машины в рамках домена. Для примера:
Domain SID для домена BIGDOMAIN | S-1-5-21-124525095-708259637-1543119021 |
BIGDOMAIN\DEMOSYSTEM$ (аккаунт машины (computer account)) | S-1-5-21-124525095-708259637-1543119021-937822 |
BIGDOMAIN\JOHNSMITH (аккаунт пользователя (user account)) | S-1-5-21-124525095-708259637-1543119021-20937 |
Таким образом, машина DEMOSYSTEM теперь имеет два независимых SID’а:
• Machine SID, определяющая машину как сущность, в рамках которой заданы группы и аккаунты (первая строчка в первой таблице).
• SID аккаунта машины (computer account SID) в рамках домена BIGDOMAIN (вторая строчка во второй таблице).
Основная суть в том, что SID’ы должны быть уникальны в пределах окружения (authority), к которому они применимы. Другими словами, если машине DEMOSYSTEM присвоен machine SID S-1-5-21-3419697060-3810377854-678604692-1000, то неважно, что у другой машины в той же сети будет идентичный machine SID, т.к. этот SID используется только локально (в пределах машины DEMOSYSTEM). Но в пределах домена BIGDOMAIN computer SID у обоих машин должен быть уникальным для корректной работы в этом домене.
Смена SID при клонировании или развёртывании
В применении к продукту Acronis Snap Deploy 5 (основное предназначение — массовое развёртывание систем из мастер-образа), в котором функциональность смены SID-а присутствовала с самой первой версии, это означает, что мы, как и многие пользователи, ошибочно пошли на поводу у устоявшегося мнения, что менять SID нужно.
Однако исходя из вышесказанного, ничего страшного в развёртывании (или клонировании) машины без изменения Machine SID вовсе нет, в случае если это развёртывание происходит до добавления машины в домен. В противном случае — возникнут проблемы.
Из этого правила есть одно исключение: нельзя клонировать машину, если в дальнейшем роль этого клона планируется повышать (promote) до уровня домена контроллера. В этом случае Machine SID домен контроллера будет совпадать с computer SID в созданном домене, что вызовет проблемы при попытке добавления оригинальной машины (из которой производилось клонирование) в этот домен. Это, очевидно, относится только к серверному семейству Windows.
Проблемы, связанные со сменой SID
Пересмотреть точку зрения на функциональность смены SID нас подтолкнул выпуск новой версии Windows. При первом тестовом развёртывании образа Windows 10 со сменой SID на получившейся машине обнаружилось, что кнопка Start перестала нажиматься (и это оказалось только вершиной «айсберга»). Если же развёртывать тот же образ без смены SID, то такой проблемы не возникает.
Основная причина в том, что эта опция вносит изменения практически во всю файловую систему развёртываемой машины. Изменения вносятся в реестр Windows, в разрешения NTFS (NTFS permissions) для каждого файла, в SID’ы локальных пользователей (так как SID пользователя включает в себя в том числе и machine SID; подробнее тут) и т.д.
В случае с Windows 10 большая часть ключей реестра не могла быть модифицирована («Error code = C0000005. Access violation» и другие ошибки) и, как следствие, наша функция смены SID’а отрабатывала не до конца, что и приводило к трагической гибели практически нерабочей копии Windows 10.
Было принято решение убрать эту опцию в случае, если в мастер-образе мы находим Windows 10 (или Windows Server 2016). Решение было принято на основе теоретических выкладок описанных выше плюс, естественно, было подтверждено практикой при тестировании недавно вышедшего обновления Acronis Snap Deploy 5 во множестве комбинаций: с и без переименования машин после развёртывания, с добавлением в домен и рабочую группу, развёртывание из мастер-образов снятых от разных состояний мастер-машины (она была добавлена в домен или рабочую группу в разных тестах) и т.д.
Использование Sysprep
Начиная с Windows NT клонирование (развертывание) ОСи с использованием только NewSID никогда не рекомендовалось самим Microsoft. Вместо этого рекомендуется использовать родную утилиту Sysprep (см. KB314828), которая, помимо смены SID’а, также вносит большое число других изменений, и с каждой новой версией Windows их становится только больше. Вот небольшой (неполный) список основных вносимых изменений:
Таким образом, клонирование/развертывание без использования Sysprep может повлиять (читай «скорее всего, сломает») на функциональность Windows Update, Network Load Balancing, MSDTC, Vista и выше Key Manager Activation (KMS), который завязан на CMID (не путать с Machine SID), также изменяемый Sysprep’ом, и т.д.
Итого
Повторяя TL;DR из начала статьи, основной вывод можно сделать такой: для подготовки образа машины к клонированию/развёртыванию следует использовать sysprep в подавляющем большинстве случаев.
Sid set что это
Identifying Which Session to Terminate
To identify which session to terminate, specify the session’s index number and serial number. To identify the index (SID) and serial number of a session, query the V$SESSION dynamic performance view.
������: ������ ��������=> Dallas,TX
���������: 347
A unique name for an Oracle instance. To switch between Oracle databases, users must specify the desired SID. The SID is included in the CONNECT DATA parts of the connect descriptor in a tnsnames.ora file, and in the definition of the network listener in a listener.ora file.
Instance
Every running Oracle database is associated with an Oracle instance. When a database is started on a database server (regardless of computer type), Oracle allocates a memory area called System Global Area (SGA) and starts an Oracle process. This combination of SGA and an Oracle process is called an instance. The memory and the process of an instance manage the associated database’s data efficiently and serve the one or more database users.
Re: ������������ ������: ��� ����� SID? [new] | |
Oleg Afanasiev Member Database Identification by Service Name Rather than SID Prior to Oracle8i, an Oracle database service was identified by an Oracle System Identifier (SID), a name that identifies a specific instance of a database. Clients connected to a database instance by specifying the SID in the connect descriptor. This naming scheme did not distinguish services from instances. In Oracle8i, a new naming scheme has been implemented. Because an Oracle database can span multiple computers, both the service as a whole and each of its instances are specified. A database service is now identified by its service name with the SERVICE_NAMES parameter in the initialization parameter file. SERVICE_NAMES specifies the name of the highest-level view of Oracle database service, which can span instances and nodes. SERVICE_NAMES is defaulted to the global database name, a name comprised of the database name (DB_NAME) and domain name (DB_DOMAIN). КириллПоговорим о SID :smoke: Что такое SID? В сети я видел десятки определений,которые словно списаны как на диктанте у какого то отличника в классе. Но мои долгие странствия в Сети привели меня к выводу,что это куда более интересная и информативная штуковина. Давние труды Рихтера и Кларка отчасти помогли мне разобраться с этой задачей. Давайте попробуем «прочитать» SID. В этом нам поможет редактор реестра или командная строка (cmd) с замечательной командой WHOAMI. Три способа выполнения WhoAmI: Синтаксис 1: Синтаксис 3: Описание: Параметры: /FQDN Отображение имени пользователя в формате /USER Отображение сведений о текущем пользователе /GROUPS Отображение для текущего пользователя членства /PRIV Отображение привилегий безопасности текущего /LOGONID Отображение идентификатора текущего пользователя. /ALL Отображение имени пользователя, членства /FO Формат вывода. /NH Указывает, что строка заголовков столбцов /? Вывод справки по использованию. Примеры: Группа Тип SID , Включенная группа , Включенная группа , Включенная группа, Владелец группы , Включенная группа , Включенная группа , Включенная группа , Включенная группа , Включенная группа , Включенная группа , Включенная группа я смог определить что sid пользователя,под учетной записью которого я вошел в систему (safezone-пк\fire) имеет значение S-1-5-21-2590260165-669464418-3280256147-1000. Вот на этом мы и проведем наш практикум,который позволит более корректно дать определение SID и понять его значение. Умные люди давно придумали такую схему: Код агента идентификатора определяет агент, являющийся основанием SID, и обычно таких агентом является локальная операционная система или домен под управлением Windows. Теперь еще кое что. Неплохо было бы ознакомиться с RID. Вот тут кстати напомню о том,почему я засомневался в информации из Гугля по поводу SID. Теперь смотрим мой SID: Итак,на мой взгляд Марк дал самое точное определение для SID. SID представляет собой числовое значение переменной длины, формируемое из номера версии структуры SID, 48-битного кода агента идентификатора и переменного количества 32-битных кодов субагентов и/ или относительных идентификаторов (relative identifiers, RID). Код агента идентификатора (identifier authority value) определяет агент, выдавший SID. Таким агентом обычно является локальная система или домен под управлением Windows. Коды субагентов идентифицируют попечителей, уполномоченных агентом, который выдал SID, a RID — не болше чем средство создания уникальных SID на основе общего базового SID (common-based SID). Поскольку длина SID довольно велика и Windows старается генерировать случайные значения для каждого SID, то и вероятность появления двух одинаковых SID практически равна нулю. Так же по этой ссылке можно ознакомиться с известными идентификаторами Windows. Для системного администратора—> Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15 О SID’еТема SID-а разжёвана в сети уже многократно, но почему-то к ней приходится возвращаться с удручающей постоянностью, когда выясняется, что многие инженеры и администраторы ОС Microsoft Windows не понимают некоторых весьма важных вещей в отношении использования SID-ов и то как он применяется в системе Windows. SID (Security IDentifier) состоит из нескольких частей (он может быть переменной длины). В начале идет “версия” SID-а, потом Генеральная область Authority – т.е. ссылка на ту систему-источник, которая отвечает за его выпуск. Версия сейчас в системах Windows всегда одна: 1, чаще всего Генеральная Authority 5 (Windows System) или 1 или 3. Однако с выходом Microsoft Exchange 2007 появилась новая Генеральная Authority – 9 (Exchange 2007). Потом в SID-е следуют один или несколько идентификаторов Sub Authority. И, в завершении, в конце может идти так называемый RID – Relative IDentificator – т.е. локальный для данного Sub Authority номер субъекта безопасности (например, учетной записи пользователя). Таким образом, SID учетной записи обычно выглядит так: S-1-5-21-1721254763-462695806-1538882281-2605462. Это примерно как структура ИНН – сначала код региона, потом код налогового органа выдавшего ИНН, а уже потом относительный номер налогоплательщика в данном налоговом органе. Дополнительную информацию о SID-ах можно почерпнуть тут http://msdn2.microsoft.com/en-us/library/aa379597.aspx и соседние по содержанию темы. Следует так же отметить, что существует целая серия так называемых Well Known SID-ов (хорошо известных SID-ов). К таким SID-ам относятся SID-ы групп: Everyone, Authenticated Users, SELF, BUILTIN\Administrators, BUILTIN\Guests и другие. Достаточно полный список можно посмотреть тут: http://support.microsoft.com/kb/243330. Так вот, в отношении SID-компьютера стоит помнить два основных факта: Итак, когда рабочая станция логинется в домен в ее собственном системном Access Token-е будут храниться ДВА SIDа – один SID ее доменной учетной записи компьютера, а другой локальный ее собственный SID. Билет Kerberos TGT, который при логоне получает рабочая станция, будет при этом содержать ТОЛЬКО ее Доменный SID. Когда вы переносите станцию из домена в домен вы в принципе не можете скопировать SID из старого домена в атрибут objectSID в новом домене – это будет противоречить всей идеологии безопасности. Поэтому для объекта учетной записи компьютера в новом домене будет сгенерирован новый SID, который будет состоять из Domain SID нового домена и какого-то доступного в настоящий момент в новом домене RID-а. Соответственно если где-то на какие-то ресурсы были даны права с использованием доменной учетной записи компьютера (а не пользователя, но такое бывает довольно часто), то при переносе из домена в домен она (станция) потеряет доступ к таким ресурсам. В AD есть специальный атрибут sIDHistory – в который администратор домена при миграции может поместить старые SID-ы субъектов безопасности для того, что бы сохранить их доступ к тем ресурсам, где такой доступ им был назначен по их старому SID-у. При входе в систему пользователя у которого заполнен атрибут sIDHistory все SID-ы из этого атрибута так же попадают в Access Token этого пользователя. С применением технологии SID History работают утилиты: movetree и ADMT всех версий. Утилиты NewSID и Sysprep меняют не только SID компьютера, но и соответственно SID-ы всех локальных компьютерных учетных записей и групп, а также проходят по всем ACL на всех доступных им объектах безопасности для того, что бы обновить информацию о выданных правах с учетом смены SIDов всех локальных учетных записей и групп. Именно поэтому версия sysprep обновляется с выходом каждого Service Pack и на самом деле не подходит от одной версии ОС Windows к другой. Теперь, когда вы понимаете логику процесса, нужно сказать, что весьма важно, чтобы изменение SID-а компьютера утилитами SysPrep или NewSID происходило как можно ближе к моменту инсталляции системы (пока не сделано много особенных прав доступа, не заведено много пользователей и т.п.). Это связано с тем, что при установке на компьютер какого-то дополнительного ПО могут появиться ресурсы илли другие объекты безопасности, о существовании которых не подозревает ваша версия NewSID или SysPrep. И при смене SIDа ACL на этих объектах безопасности не будут обновлены, как следствие будут нарушены права доступа и работоспособность дополнительного ПО может быть потеряна. На самом деле при работе в домене ничего страшного в том, что локальные SID-ы компьютеров совпадают, вроде бы нет, однако есть ряд особенностей работы системы аутентификации Windows, при которых даже в доменной среде можно будет получить доступ от одной такой клонированной машины к другой в обход настроенных прав доступа. Именно поэтому надо при клонировании дисков SID компьютеров МЕНЯТЬ ВСЕГДА. Что же касается доступа по SID-у компьютера – предоставить доступ по учетной записи компьютера (ее SID-у) можно только в доменной среде на основании аккаунта компьютера в AD и соответственно SID-а из AD, где как я говорил он гарантированно уникальный (при условии что у вас не падал и не восстанавливался из BackUp-а некорректным способом RID Master вместе с AD). Дырочка в безопасности при совпадении SID-ов компьютеров может быть в доступе предоставленном локальным пользователям на разных компьютерах. Этот пост April 5, 2008 at 11:46 am опубликовал molse в категории Документация. Желающие могут оформить RSS подписку на комменты. Both comments and trackbacks are currently closed. Изменение SID и имени базы данныхЧто такое SID, как его узнать и как изменитьОтвет Тома КайтаНАЗНАЧЕНИЕЗдесь описано, как найти и изменить имя базы данных ( db_name ) или ORACLE_SID для экземпляра, не пересоздавая базу данных. ДЛЯ КОГО ЭТА ЗАМЕТКАЧтобы найти текущие значения DB_NAME и ORACLE_SID: Если ORACLE_SID = DB_SID и db_name = DBNAME : Чтобы найти текущее значение ORACLE_SID : Чтобы найти текущее значение DB_NAME : Изменение базы данных для работы с новым ORACLE_SID : Например, пройдите по всем каталогам и выполните grep ORACLE_SID * Если в этот момент вы получаете сообщение об ошибке, утверждающее, что для файла необходимо восстановление носителя (media recovery), значит, база данных была остановлена аварийно на шаге 4. Можно попытаться восстановить базу данных, используя данные повторного выполнения в текущем файле журнала, с помощью команды: Чтобы найти список активных журнальных файлов: Cколько АБД Oracle надо, чтобы поменять лампочку. Комментарий от 13 сентября 2001 годаУдивительно, сколько механической работы требуется в Oracle для простых вещей. Ответ Тома КайтаБаза данных поддерживает реляционную модель, а обеспечивающее работу с ней программное обеспечение, согласен, этой модели не соответствует. НА САМОМ ДЕЛЕ, мы сталкиваемся с попыткой ИЗМЕНИТЬ ПЕРВИЧНЫЙ КЛЮЧ. Так что, даже при наличии ОДНОГО внешнего ключа, пробюлема будет аналогичной. Если вы когда-нибудь изменяли значение первичного ключа, вам приходилось делать то же самое (находить все внешние ключи и изменять их соответственно). Комментарий от 1 марта 2001 годаОтвет Тома КайтаНа NT посмотрите список служб Oracle в Панели управления. Оригинал обсуждения этого вопроса можно найти здесь. Изменение SID на платформе Windows, кстати, описано вот здесь. Copyright © 2003 Oracle Corporation В следующем выпускеПеревод очередной статьи Джонатана Льюиса пока придется подождать. Статья большая. Пожалуй, продолжим тему клонирования БД «по мотивам» ответов Тома Кайта. Следите за новостями на сайте проекта Open Oracle.
|