По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Потренируйтесь в ответах на популярные вопросы по SQL на собеседованиях. В данной статье приведен список типовых вопросов по SQL, с которыми можно столкнуться на настоящем собеседовании, и даны ответы. Чтобы получить максимум из прочитанного, постарайтесь сначала отвечать на вопросы самостоятельно. Удачи! 1. Что такое SQL? SQL расшифровывается как Structured Query Language – язык структурированных запросов. Это язык программирования для взаимодействия с данными, которые хранятся в системе управления реляционными базами данных. Синтаксис SQL схож с английским языком, поэтому его легко читать, писать и интерпретировать. Он позволяет вам писать запросы, определяющие подмножество данных, которые вы ищите. Эти запросы можно сохранять, уточнять, обмениваться ими и запускать в различных базах данных. 2. Что такое база данных? База данных (БД) – это набор данных, хранимых на компьютере. При этом сами данные структурированы таким образом, что их можно было легко получить. 3. Что такое реляционная база данных? Реляционная база данных – это разновидность базы данных. В ней используется структура, которая позволяет нам идентифицировать и обращаться к данным в привязке к другим частям данных из БД. Данные в реляционной БД часто организованы в виде таблиц. 4. Что такое РСУБД? Система управления реляционными базами данных (РСУБД) – это программа, позволяющая вам создавать, обновлять и администрировать реляционную базу данных. Для доступа к базам данных большинство РСУБД использует язык SQL. Самой популярной РСУБД считается MySQL. К другим системам относятся PostgreSQL, Oracle DB, SQL Server и SQLite. 5. Что такое таблица? Таблица – это набор данных, распределенных по строкам и столбцам. Иногда их называют «связями». В таблицах могут быть сотни, тысячи и иногда даже миллионы строк данных. 6. Что такое строка и столбец в таблице? Строка – это одна запись данных в таблице. Столбец – это набор значений данных определенного типа. 7. Что такое тип данных? Тип данных – это атрибут, который определяет тип данных в столбце. В каждом столбце БД есть тип данных. Несколько часто используемых типов данных: INTEGER, TEXT, DATE, REAL. 8. Что такое первичный и внешний ключ? Первичный ключ (primary key) – это столбец, который однозначно определяет каждую строку в таблице. Первичные ключи должны соответствовать следующим требованиям: ни одно значение не может быть пустым (NULL), каждое значение должно быть уникальным и в таблице не может быть более одного столбца с первичным ключом. Например, в таблице customers первичным ключом будет customer_id. Внешний ключ (foreign key) – это первичный ключ для одной таблицы, который присутствует и в другой таблице. Например, есть дополнительная таблица orders. В каждом заказе может храниться информация о клиенте. Поэтому внешним ключом будет столбец customer_id. 9. В чем отличие ALTER от UPDATE? Оператор ALTER используется для добавления нового столбца в таблицу. Он изменяет структуру таблицы. Оператор UPDATE используется для редактирования строки в таблице. Он изменяет существующие записи в таблице. 10. Что такое запрос? Запрос (query) – это оператор SQL для получения информации, хранимой в базе данных. Запросы позволяют нам «общаться» с базой данных, задавая вопросы и возвращая результирующий набор подходящих данных. 11. Что такое подзапрос? Подзапрос (subquery) – это внутренний запрос, вложенный во внешний. Запросы можно вложить через операторы SELECT, INSERT, UPDATE или DELETE. Если есть подзапрос, то он будет выполняться до запуска внешнего оператора. 12. Что такое ограничения? Ограничения (constraints) – это набор правил, через которых базе данных сообщается об ограничении типа данных, хранимых в столбцах. Они предписывают базе данных отклонять введенные данные, если они не соответствуют ограничению. Ограничения добавляют информацию о том, как может использоваться столбец, и вызываются после типа данных для столбца. Несколько примеров ограничений: PRIMARY KEY: однозначно определяет каждую строку и требует уникальности каждого значения. UNIQUE: каждое значение в столбце должно отличаться. NOT NULL: в столбцах обязательно должны быть значения. DEFAULT: дополнительный аргумент, который подставляется в качестве предполагаемого значения для каждой новой строки, если в ней не указано значение для этого столбца. 13. Что такое оператор? Оператор (statement) – это текст, который база данных распознает как допустимую команду. Операторами можно пользоваться для выполнения таких задач, как изменение структуры таблицы, обновление данных или извлечение данных из БД. Структура операторов может варьировать, но каждый из них должен заканчиваться точкой с запятой (;). Количество строк в операторе неважно. Оператор можно записать в одну строку или разделить на несколько (для лучшей читабельности). 14. Как вы проверите, есть ли в поле значение или нет? Если в поле отсутствует значение, оно обозначается как NULL. Чтобы проверить поля на пустые значения, можно прописать в качестве условия IS NULL: WHERE [столбец] IS NULL. Чтобы найти поля со значением, добавьте в условие IS NOT NULL: WHERE [столбец] IS NOT NULL. 15. Чем отличаются DISTINCT и UNIQUE? DISTINCT – это ключевое слово, которым мы пользуемся, если хотим вернуть уникальные значения на выводе. Оно отсеивает все повторяющиеся значения в конкретном столбце. UNIQUE – это ограничение, которым пользуются, чтобы все значения столбца отличались. Оно похоже на PRIMARY KEY, с той лишь разницей, что в таблице может быть множество разных столбцов с UNIQUE. 16. Для чего используются агрегатные функции? Агрегатные функции используются для выполнения вычислений на одном или нескольких значениях и возвращают одиночное значение с осмысленной информацией. Несколько примеров агрегатных функций: COUNT(), SUM(), MAX(), MIN(), AVG() и ROUND(). 17. Что такое соединение (JOIN)? JOIN – это способ объединения строк из двух и более таблиц посредством общего столбца. 18. В чем отличие INNER JOIN от LEFT JOIN? INNER JOIN используется для объединения строк из двух таблиц, которые соответствуют условию ON. В конечный результат не попадают строки, не соответствующие условию ON. LEFT JOIN сохраняет все строки из первой таблицы, вне зависимости от того, есть ли для них совпадающая по условию ON строка во второй таблице. 19. Для чего нужны оконные функции? Оконные функции (windows functions) нужны в случаях, когда вы хотите сохранить значения своей исходной таблицы и параллельно отобразить сгруппированную или суммарную информацию. Они похожи на агрегатные функции, но не сокращают количество строк в результате, а объединяют и группируют их в несколько результатов. 20. Что такое индексы и для чего они нужны? Индексы – это мощный инструмент, который используется в фоновом режиме БД для ускорения запросов и выступает в роли справочной таблицы для данных. Они нужны для эффективного хранения данных и быстрого их получения, что может быть критически важным для успеха крупных технологических компаний, которые обрабатывают петабайты данных каждый день.
img
Почитайте предыдущую статью про криптографический обмен ключами. Предположим, вы хотите отправить большой текстовый файл или даже изображение, и позволить получателям подтвердить, что он исходит именно от вас. Что делать, если рассматриваемые данные очень большие? Или что, если данные нужно сжать для эффективной передачи? Существует естественный конфликт между криптографическими алгоритмами и сжатием. Криптографические алгоритмы пытаются произвести максимально случайный вывод, а алгоритмы сжатия пытаются воспользоваться преимуществом неслучайности данных для сжатия данных до меньшего размера. Или, возможно, вы хотите, чтобы информация была прочитана кем-либо, кто хочет ее прочитать, что означает, что не нужно ее шифровать, но вы хотите, чтобы получатели могли проверить, что вы ее передали. Криптографические хэши предназначены для решения этих проблем. Возможно, вы уже заметили по крайней мере одно сходство между идеей хеширования и криптографического алгоритма. В частности, хэш предназначен для получения очень большого фрагмента данных и создания представления фиксированной длины, поэтому на выходе для широкого диапазона входных данных очень мало конфликтов. Это очень похоже на концепцию максимально близкого к случайному выходу для любого ввода, необходимого для криптографического алгоритма. Еще одно сходство, о котором стоит упомянуть, заключается в том, что хэш-алгоритмы и криптографические алгоритмы работают лучше с очень редко заполненным входным пространством. Криптографический хеш просто заменяет обычную хеш-функцию криптографической функцией. В этом случае хэш может быть вычислен и отправлен вместе с данными. Криптографические хэши могут использоваться либо с системами с симметричными ключами, либо с системами с открытым ключом, но обычно они используются с системами с открытым ключом. Сокрытие информации о пользователе Возвращаясь к начальным статьям, еще одна проблема безопасности - это исчерпание данных. В случае отдельных пользователей исчерпание данных можно использовать для отслеживания того, что пользователи делают, пока они находятся в сети (а не только для процессов). Например: Если вы всегда носите с собой сотовый телефон, можно отслеживать перемещение Media Access Control (MAC), когда он перемещается между точками беспроводного подключения, чтобы отслеживать ваши физические перемещения. Поскольку большинство потоков данных не симметричны - данные проходят через большие пакеты, а подтверждения передаются через небольшие пакеты, наблюдатель может обнаружить, когда вы выгружаете и скачиваете данные, и, возможно, даже когда вы выполняете небольшие транзакции. В сочетании с целевым сервером эта информация может дать хорошую информацию о вашем поведении как пользователя в конкретной ситуации или с течением времени. Этот и многие другие виды анализа трафика могут выполняться даже для зашифрованного трафика. Когда вы переходите с веб-сайта на веб-сайт, наблюдатель может отслеживать, сколько времени вы тратите на каждый из них, что вы нажимаете, как вы перешли на следующий сайт, что вы искали, какие сайты вы открываете в любое время и т. д. информация может многое рассказать о вас как о личности, о том, чего вы пытаетесь достичь, и о других личных факторах. Рандомизация MAC-адресов Institute of Electrical and Electronic Engineers (IEEE) первоначально разработал адресное пространство MAC-48 для назначения производителями сетевых интерфейсов. Эти адреса затем будут использоваться "как есть" производителями сетевого оборудования, поэтому каждая часть оборудования будет иметь фиксированный, неизменный аппаратный адрес. Этот процесс был разработан задолго до того, как сотовые телефоны появились на горизонте, и до того, как конфиденциальность стала проблемой. В современном мире это означает, что за одним устройством можно следить независимо от того, где оно подключено к сети. Многие пользователи считают это неприемлемым, особенно потому, что не только провайдер может отслеживать эту информацию, но и любой, кто имеет возможность прослушивать беспроводной сигнал. Один из способов решить эту проблему-позволить устройству регулярно менять свой MAC-адрес, даже, возможно, используя другой MAC-адрес в каждом пакете. Поскольку сторонний пользователь (прослушиватель) вне сети провайдера не может "угадать" следующий MAC-адрес, который будет использоваться любым устройством, он не может отслеживать конкретное устройство. Устройство, использующее рандомизацию MAC-адресов, также будет использовать другой MAC-адрес в каждой сети, к которой оно присоединяется, поэтому оно не будет отслеживаться в нескольких сетях. Существуют атаки на рандомизацию MAC-адресов, в основном сосредоточенные вокруг аутентификации пользователя для использования сети. Большинство систем аутентификации полагаются на MAC-адрес, поскольку он запрограммирован в устройстве, чтобы идентифицировать устройство и, в свою очередь, пользователя. Как только MAC-адрес больше не является неизменным идентификатором, должно быть какое-то другое решение. Места, где рандомизация MAC-адресов может быть атакована, - это Время (timing): если устройство собирается изменить свой MAC-адрес, оно должно каким-то образом сообщить другому абоненту беспроводного соединения об этих изменениях, чтобы канал между подключенным устройством и базовой станцией мог оставаться жизнеспособным. Должна быть какая-то согласованная система синхронизации, чтобы изменяющийся MAC-адрес мог продолжать обмен данными при изменении. Если злоумышленник может определить, когда произойдет это изменение, он сможет посмотреть в нужное время и обнаружить новый MAC-адрес, который принимает устройство. Порядковые номера (Sequence numbers): как и во всех транспортных системах, должен быть какой-то способ определить, все ли пакеты были получены или отброшены. Злоумышленник может отслеживать порядковые номера, используемые для отслеживания доставки и подтверждения пакетов. В сочетании с только что отмеченной атакой по времени это может обеспечить довольно точную идентификацию конкретного устройства при изменении MAC-адреса. Отпечатки информационных элементов (Information element fingerprints): каждое мобильное устройство имеет набор поддерживаемых функций, таких как установленные браузеры, расширения, приложения и дополнительное оборудование. Поскольку каждый пользователь уникален, набор приложений, которые он использует, также, вероятно, будет довольно уникальным, создавая "отпечаток" возможностей, которые будут сообщаться через информационный элемент в ответ на зонды от базовой станции. Отпечатки идентификатора набора услуг (SSID): каждое устройство хранит список сетей, к которым оно может подключиться в настоящее время, и (потенциально) сетей, которые оно могло достичь в какой-то момент в прошлом. Этот список, вероятно, будет довольно уникальным и, следовательно, может выступать в качестве идентификатора устройства. Хотя каждый из этих элементов может обеспечить определенный уровень уникальности на уровне устройства, комбинация этих элементов может быть очень близка к идентификации конкретного устройства достаточно часто, чтобы быть практически полезной при отслеживании любого конкретного пользователя, подключающегося к беспроводной сети. Это не означает, что рандомизация MAC-адресов бесполезна, это скорее один шаг в сохранении конфиденциальности пользователя при подключении к беспроводной сети. Луковая маршрутизация Луковая маршрутизация - это механизм, используемый для маскировки пути, а также шифрования пользовательского трафика, проходящего через сеть. Рисунок 1 используется для демонстрации. На рисунке 1 хост А хочет безопасно отправить некоторый трафик на K, чтобы ни один другой узел в сети не мог видеть соединение между хостом и сервером, и чтобы ни один злоумышленник не мог видеть открытый текст. Чтобы выполнить это с помощью луковой маршрутизации, A выполняет следующие действия: Он использует службу для поиска набора узлов, которые могут соединяться между собой, и предоставления пути к серверу K. Предположим, что этот набор узлов включает [B, D, G], хотя на рисунке они показаны как маршрутизаторы, скорее всего, это программные маршрутизаторы, работающие на хостах, а не выделенные сетевые устройства. Хост A сначала найдет открытый ключ B и использует эту информацию для создания сеанса с шифрованием с симметричным ключом B. Как только этот сеанс установлен, A затем найдет открытый ключ D и использует эту информацию для обмена набором симметричных ключей с D, наконец, построит сеанс с D, используя этот симметричный секретный ключ для шифрования защищенного канала. Важно отметить, что с точки зрения D, это сеанс с B, а не с A. Хост A просто инструктирует B выполнить эти действия от его имени, а не выполнять их напрямую. Это означает, что D не знает, что A является отправителем трафика, он знает только, что трафик исходит от B и передается оттуда по зашифрованному каналу. Как только этот сеанс будет установлен, A затем проинструктирует D настроить сеанс с G таким же образом, как он проинструктировал B настроить сеанс с D. D теперь знает, что пункт назначения-G, но не знает, куда будет направлен трафик G. У хоста A теперь есть безопасный путь к K со следующими свойствами: Трафик между каждой парой узлов на пути шифруется с помощью другого симметричного закрытого ключа. Злоумышленник, который разрывает соединение между одной парой узлов на пути, по-прежнему не может наблюдать трафик, передаваемый между узлами в другом месте на пути. Выходной узел, которым является G, знает пункт назначения, но не знает источник трафика. Входной узел, которым является B, знает источник трафика, но не пункт назначения. В такой сети только А знает полный путь между собой и местом назначения. Промежуточные узлы даже не знают, сколько узлов находится в пути-они знают о предыдущем и следующем узлах. Основная форма атаки на такую систему состоит в том, чтобы захватить как можно больше выходных узлов, чтобы вы могли наблюдать трафик, выходящий из всей сети, и соотносить его обратно в полный поток информации. Атака "Человек посередине" (Man-in-the-Middle) Любой вид безопасности должен не только изучать, как вы можете защитить информацию, но также учитывать различные способы, которыми вы можете вызвать сбой защиты данных. Поскольку ни одна система не является идеальной, всегда найдется способ успешно атаковать систему. Если вам известны виды атак, которые могут быть успешно запущены против системы безопасной передачи данных, вы можете попытаться спроектировать сеть и среду таким образом, чтобы предотвратить использование этих атак. Атаки "человек посередине" (MitM) достаточно распространены, и их стоит рассмотреть более подробно. Рисунок 2 демонстрирует это. Рисунок 2-б аналогичен рисунку 2-а с одним дополнением: между хостом A и сервером C расположен хост B, который хочет начать зашифрованный сеанс. Некоторыми способами, либо подменяя IP-адрес C, либо изменяя записи службы доменных имен (DNS), чтобы имя C преобразовывалось в адрес B, или, возможно, даже изменяя систему маршрутизации, чтобы трафик, который должен быть доставлен в C, вместо этого доставлялся в B, злоумышленник заставил B принять трафик, исходящий из A и предназначенный для C. На рисунке 2-б: Хост A отправляет полуслучайное число, называемое одноразовым номером, в C. Эту информацию получает B. Хост B, который злоумышленник использует в качестве MitM, передает этот одноразовый номер на узел C таким образом, что создается впечатление, что пакет действительно исходит от узла A. В этот момент злоумышленник знает одноразовый идентификатор, зашифрованный A. Злоумышленник не знает закрытый ключ A, но имеет доступ ко всему, что A отправляет зашифрованным с помощью закрытого ключа A. Сервер C также отправляет ответ с зашифрованным одноразовым случайным числом. B получает это и записывает. Хост B передает одноразовое случайное число, полученное от C, на A. Хост A по-прежнему будет считать, что этот пакет пришел непосредственно от C. Хост B вычисляет закрытый ключ с помощью A, как если бы это был C. Хост B вычисляет закрытый ключ с помощью C, как если бы это был A. Любой трафик, который A отправляет в C, будет получен B, что: Расшифруйте данные, которые A передал, используя закрытый ключ, вычисленный на шаге 5 на рисунке 2-б. Зашифруйте данные, которые A передал, используя закрытый ключ, вычисленный на шаге 6 на рисунке 2-б, и передайте их C. Во время этого процесса злоумышленник на B имеет доступ ко всему потоку в виде открытого текста между A и C. Ни A, ни C не осознают, что они оба построили зашифрованный сеанс с B, а не друг с другом. Такого рода атаки MitM очень сложно предотвратить и обнаружить.
img
В этой статье приведены сведения и инструкции по устранению неполадок при возникновении этой ошибки при входе в систему и доступе к серверу vCenter Server с помощью веб-клиента vSphere. Признаки Сбой при входе на vCenter Server или устройство vCenter Server (VCSA) используя веб-клиента vSphere. Сбой доступа к vCenter Server или устройству vCenter Server используя веб-клиент vSphere. Вы видите следующие ошибки: 503 Service Unavailable. 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x00007fb7d00200a0] _serverNamespace = / action = Allow _pipeName =/var/run/vmware/vpxd-webserver-pipe) Причина Эта проблема может возникнуть по ряду причин, таких как: Сервер vCenter в данный момент не работает из-за обслуживания. Обратный прокси сервер на сервере vCenter не работает. Служба веб-клиента vSphere отключена. Неправильно сконфигурированны параметры настройки Брандмауэра. Эта неправильная конфигурация может быть выполнена только при установке vCenter Server в Windows. Эта проблема может возникнуть только в том случае, если в параметры брандмауэра были внесены целенаправленные изменения. Решение Ошибка 503 Сервис недоступен (503 Service Unavailable) - это код состояния ответа HTTP, указывающий на то, что сервер временно не может обработать Ваш запрос Важно понимать, что ошибка 503 - это ошибка сервера. Это означает, что проблема существует в vCenter Server или веб-узле (сервере), к которому Вы пытаетесь получить доступ, а не на вашем компьютере (клиенте). Кроме того, на других веб-сайтах есть разные ошибки 503, например: 503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x00007fb7d00200a0] _serverNamespace = / action = Allow _pipeName =/var/run/vmware/vpxd-webserver-pipe) 503 Error Service Unavailable – DNS Failure HTTP Error 503 HTTP 503 503 Service Temporarily Available Устраенние ошибки Повторите попытку через несколько минут. Наиболее вероятно, что сервер vCenter просто занят подтверждением Вашего запроса. Сервер vCenter смог обработать ваш запрос и ответил на сообщение об ошибке "503 Сервис недоступен". Он просто не может подтвердить Ваш запрос потому что он занят другими задачами в данный момент или он в настоящее время не работает с очень ограниченными услугами из-за обслуживания. Повторите попытку через несколько минут на другом клиенте. Подтвердите, есть ли та же ошибка. Проверьте состояние служб VMware vCenter. Убедитесь, что все сервера vCenter, и услуги vCenter рабочие и функциональные. Проверьте наличие проблем с дисковым пространством на vCenter Server или vCenter Server Appliance. Проблемы с дисковым пространством могут привести к завершению работы нескольких служб, что может привести к появлению кода ответа на ошибку HTTP 503. Проблемы с дисковым пространством непосредственно не вызывают код 503 ответа на ошибку, но из-за сбоя службы не работают. На сервере vCenter изучите файл vsphere_client_virgo.log, расположенный по адресу: для Windows vCenter Server - C:ProgamDataVMwarevCenterServerlogsvsphere-clientlogs, для vCenter Server Appliance - /var/log/vmware/vsphere-client/logs/. Кроме того, посмотрите файл vpxd.log, расположенный по адресу: для Windows vCenter Server - C:ProgramDataVMwarevCenterServerlogsvmware-vpx, для vCenter Server Appliance - /var/log/vmware/vpxd
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59