- Что такое привилегии
- Привилегии – это …
- Привилегии в обществе
- Другие виды привилегий
- Краткое резюме
- Комментарии и отзывы (2)
- Sysadminium
- Права и привилегии пользователей
- Назначение прав и привилегий
- Права учетной записи
- Привилегии
- Включение привилегий по требованию
- Привилегия обхода промежуточных проверок NTFS
- Супер привилегии
- Sysadminium
- Привилегии в PostgreSQL
- Привилегий для разных объектов
- Категории ролей
- Выдача и отзыв привилегий
- Групповые привилегии
- Псевдо роль public
- Привилегии по умолчанию
- Практика
- Выдаем различные привилегии на объекты
- Привилегии на отдельные столбцы
- Работа с ролью public
- Выдача права передавать привилегии
- Работа с функциями
- Привилегии по умолчанию
Что такое привилегии
Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru.
Продолжим изучать толкование слов, которые мы слышим часто, а сформулировать их точный смысл не всегда получается.
Поговорим сегодня, что такое привилегии и где это понятие применяется.
Привилегии – это …
Начнем с перевода слова с латинского на русский язык: «privilegium» означает «преимущественное право».
Следовательно, привилегии – это преимущества, предоставляемые кому-либо в то время, когда остальные этих преимуществ не имеют.
Например, в магазине за то, что вы являетесь активным клиентом, вам выдали бонусную карту на возможность последующего приобретения товара с большой скидкой. Это значит, что вы получили привилегию в сравнении с другими покупателями.
Синонимы к слову «привилегия»:
- преимущество;
- льгота;
- прерогатива (это как?);
- ВИП (очень важная персона, имеющая множество привилегий).
Понятие «привилегии» применяется и в разговорной речи, и в качестве термина в профессиональных сферах. Рассмотрим некоторые примеры его использования.
Привилегии в обществе
Привилегии в обществе – это предоставление определенным группам лиц каких-либо преимуществ (материальных и (или) моральных). В разные времена к таким привилегированным группам относились (относятся):
Сословия, на которое было разделено общество.
Например, в России в 19 веке и ранее к таковым относилось дворянство, помещики. До отмены крепостного права в 1861 году эти сословия имели право на крепостных крестьян.
Крепостные своим трудом приносили владельцу доход (это как?), не имели права переезжать с земельного надела, за которым были закреплены.
Аппарат государственной власти, чиновники.
В эпоху, когда Россия развивалась по социалистическому типу (это как?) (1917 – 1991 годы), чиновникам и руководителям различного уровня предоставлялись некоторые материальные блага, недоступные остальным членам общества.
Например, получение продовольственного пайка, право пользоваться персональным служебным транспортом, получение каких-либо благ без очереди и т.д.).
Но и чиновники нашей с вами современности с привилегиями расставаться не спешат. Вот только дефицита (это как?) продуктов сегодня нет, так что продовольственный паек им без надобности.
Сегодня в РФ некоторые привилегии имеют следующие категории граждан:
Перечисленные категории населения РФ могут воспользоваться такими привилегиями:
Другие виды привилегий
Национальные привилегии – это право какой-либо нации пользоваться определенными преимуществами, недоступным людям другой (других) национальностей.
Вспомним главного идеолога нацизма (это как?) – Гитлера. Он считал, что только арийская нация может достойно существовать и править миром. Все остальные должны либо стать рабами, либо вовсе исчезнуть с лица земли. Это постулаты нацизма, в корне которых – национальные привилегии.
В России до революции 1917 года привилегированной нацией считалась русская (правда, это привилегия была негласной). После революции был взят курс на «равенство и братство всех народов». Иосиф Сталин (с 1924 по 1953 годы – руководитель нашей страны) говорил, что в СССР удалось «…уничтожить национальные привилегии».
Национальные привилегии – это основа национализма, ставящего во главу угла интересы одной нации.
Привилегированные акции – это акции (что это вообще такое?), на которые начисляется фиксированный доход, т.е. владельцы таких ценных бумаг имеют привилегии в сравнении с иными держателями акций.
Привилегии в авторском праве (устаревшее понятие) – прообраз современного патента (это что?), использовались в России до 1917 года.
Вот как выглядел патент на привилегию:
*при клике по картинке она откроется в полный размер в новом окне
Привилегии в трудовом коллективе – это льготы и преимущества, с помощью которых руководство поощряет и мотивирует особо ценных работников.
Например, предоставление отпуска в удобное время, возможность работы дома, а не в офисе, оплата проезда до места работы, дополнительные надбавки к заработной плате и т.д.
Краткое резюме
Привилегия – это преимущество в сравнении с другими.
Наличие привилегий может являться как движущим, так и тормозящим развитие фактором. Поэтому данное понятие может трактоваться как в положительном, так и отрицательном контексте (это как?).
Читайте наш блог – и знайте больше!
Автор статьи: Елена Копейкина
Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru
Эта статья относится к рубрикам:
Комментарии и отзывы (2)
Привилегированные слои общества сейчас определяются исключительно уровнем материального благосостояния. Родословная или принадлежность к определенной группе почти не имеют значения.
Все дееспособные люди равны перед законом, а также юридически имеют равные права и возможности. Потому, любые привилегии должны быть упразднены, ведь это подрывает указанные постулаты.
Источник
Sysadminium
База знаний системного администратора
Права и привилегии пользователей
В этой статье рассмотрим права и привилегии пользователей в системе. Вы узнаете где они устанавливаются и чем права отличаются от привилегий.
Назначение прав и привилегий
Привилегии – это возможность выполнять связанные с системой операции, например выключение компьютера или изменение системного времени.
Право – разрешает или запрещает выполнять конкретный тип входа в систему, например локальный или вход по сети.
Для того чтобы управлять привилегиями и правами, нужно использовать ММС-оснастку “Локальная политика безопасности” (secpol.msc). В этой оснастке можно настроить и права и привилегии для пользователей или групп. Вы можете различить права от привилегий тем, что права связаны со входом в систему, а привилегии не связаны.
Права учетной записи
Права хоть и находятся в одной и той же оснастке с привилегиями, но технически отличаются т привилегий. Они не связаны с монитором безопасности SRM и не хранятся в маркерах доступа в отличие от привилегий.
Возможные права:
- право локального входа в систему (logon locally);
- возможность входить в систему по сети (logon over the network);
- право входить в систему через службу терминалов (logon through Terminal Services);
- возможность входить в систему в качестве службы (logon as a service);
- возможность входить в систему в качестве пакетного задания (logon as a batch job).
Привилегии
Привилегии пользователя находятся в маркере доступа. А вот не полный список привилегий:
- Резервное копирование файлов и каталогов. Заставляет NTFS предоставлять некоторый доступ к файлам, даже если дескриптор безопасности не дает таких разрешений.
- Восстановление файлов и каталогов. Заставляет NTFS предоставлять некоторый доступ к файлам, даже если дескриптор безопасности не дает таких разрешений.
- Повышение приоритета планирования. Требуется для повышения приоритета процесса.
- Загрузка и выгрузка драйверов устройств.
- Добавление рабочих станций в домен.
- Выполнение операций сопровождения с томом. Например, выполнение дефрагментации или проверка диска.
- Изменение маркера объекта. Например, разрешает запуск программ от имени администратора.
- Управление аудитом и журналом безопасности. Необходимо для обращения к списку SACL.
- Выключение системы.
- Изменение системного времени.
- Получение прав владения. Для файлов и других объектов.
Включение привилегий по требованию
Привилегии включаются по требованию, чтобы понять это, проведем эксперимент.
Запустите Process Explorer с повышенными привилегиями. А затем щелкните правой кнопкой мыши на часах в области уведомлений и выберите команду “Настройка даты и времени“. После чего найдите и откройте свойства процесса “SystemSettings.exe” в “Process Explorer“.
Далее, перейдите на вкладку “Security” и там вы увидите, что привилегия “SeTimeZonePrivilege” отключена:
Затем измените часовой пояс, закройте и снова откройте окно свойств процесса ” SystemSettings.exe “. И вы увидите, что привилегия “SeTimeZonePrivilege” включилась:
Получается что процесс может иметь какую-то привилегию, но пока он ей не воспользуется, привилегия будет в выключенном состоянии.
Привилегия обхода промежуточных проверок NTFS
А теперь разберём ещё одну интересную привилегию. Она позволяет получить доступ к файлу, даже если у вас нет доступа к папке в которой этот файл находится. Такая привилегия называется SeNotifyPrivilege.
Во-первых создайте папку, а внутри этой папки создайте новый текстовый документ. Затем перейдите в Проводнике к этому файлу, откройте его свойства и перейдите на вкладку “Безопасность“. Там щелкните на кнопке “Дополнительно” и снимите флажок “Наследование“. А затем примените изменения. Когда появится предложение удалить или скопировать права наследования, выберите “Копировать“.
Теперь измените безопасность новой папки, чтобы у вашей учетной записи не было никакого доступа к ней. Для этого выберите свою учетную запись, а затем выберите все флажки “Запретить” в списке разрешений.
Запустите программу “Блокнот“. В меню “Файл” выберите команду “Открыть” и перейдите к новому каталогу. Вы не сможете открыть его, так как доступ быть запрещен. Но вы можете в поле “Имя файла” диалогового окна “Открыть” набрать полный путь к новому файлу. После чего файл должен открыться.
Если бы у вашей учетной записи не было “Привилегии обхода промежуточных проверок“, то NTFS выполнял бы проверки доступа к каждому каталогу пути при попытке открыть файл. Что в данном примере привело бы к запрещению доступа к файлу.
Супер привилегии
Это очень серьёзные привилегии и при включенной системе UAC они будут предоставляться только приложениям запущенным на высоком уровне целостности ( high или выше). Ну и конечно учетная запись должна обладать этими привилегиями.
Вот список таких супер привилегий:
- Проводить отладку программ. Пользователь с этой привилегией может открывать любой процесс в системе, не обращая внимания на имеющийся у процесса дескриптор безопасности. И может не только смотреть содержимое памяти процесса, но и выполнить свой код от имени этого процесса.
- Приобретать права владения. Эта привилегия позволяет приобретать права владения любым объектом в системе.
- Восстанавливать файлы и каталоги. Пользователь, получивший эту привилегию, может заменять любые файлы в системе своими собственными файлами.
- Загружать и выгружать драйверы устройств. Такая привилегия позволит загрузить в систему любой драйвер, который будет работать в режиме ядра.
- Создавать объект маркера. Эта привилегия может использоваться, чтобы запустить приложение с любым маркером доступа.
- Действовать в качестве части операционной системы. Эта привилегия позволяет устанавливать доверенное подключение к LSASS, что даст возможность создавать новые сеансы входа в систему.
Помимо всего прочего, следует помнить, что привилегии не выходят за границы одной машины и не распространяются на сеть.
Источник
Sysadminium
База знаний системного администратора
Привилегии в PostgreSQL
В PostgreSQL для работы с объектами роль должна иметь привилегии к этим объектам (таблицам, функциям). В этой статье разберёмся с привилегиями PostgreSQL.
Привилегий для разных объектов
Каждый вид объектов имеет разный набор привилегий, таблицы например имеют самый большой набор:
- SELECT – чтение данных;
- INSERT – вставка данных;
- UPDATE – изменение строк;
- REFERENCES – внешний ключ (право ссылаться на таблицу);
- DELETE – удаление строк;
- TRUNCATE – очистка таблицы;
- TRIGGER – создание триггеров.
Представления имеют всего две привилегии:
- SELECT – право читать представление;
- TRIGGER – право создавать триггеры.
- SELECT – право читать последовательность;
- UPDATE – право изменять последовательность;
- USAGE – право использовать последовательность.
- CREATE – разрешает создавать объекты внутри табличного пространства.
Базы данных имеют три привилегии:
- CREATE – разрешает создавать схемы внутри базы данных;
- CONNECT – даёт возможность подключаться к базе данных;
- TEMPORARY – разрешает создавать в базе данных временные таблицы.
У схем есть две привилегии:
- CREATE – разрешает создавать объекты внутри конкретной схемы;
- USAGE – позволяет использовать объекты в конкретной схеме.
У функций есть только одна привилегия:
- EXECUTE – даёт право выполнять функцию.
Категории ролей
С точки зрения управления доступом роли можно разбить на несколько групп:
- Суперпользователи – полный доступ ко всем объектам – проверки не выполняются;
- Владельцы – владельцем становиться тот, кто создал объект. Но право владения можно передать. Владелец имеет все привилегии на принадлежащий ему объект;
- Остальные роли – доступ только в рамках выданных привилегий на определённый объект. Такие привилегии могут выдать владельцы на свои объекты. Или может выдать суперпользователь на любой другой объект.
Выдача и отзыв привилегий
Выдать привилегию можно с помощью команды GRANT:
Забрать привилегию можно с помощью команды REVOKE:
Выданной привилегией можно пользоваться, но нельзя передавать другим ролям. Но владелец или суперпользователь может вместе с привилегией выдать дополнительную опцию, которая разрешит передавать привилегию другим ролям. Выдача привилегии с правом её передачи выполняется с помощью WITH GRAND OPTION:
Если мы дали привилегию вместе с правом её передачи. А затем роль воспользовалась своим правом и передала привилегию другим ролям. То забрать эту привилегию можно только каскадно у этой роли и у других ролей с помощью CASCADE:
Можно не отбирать привилегию, а только отобрать право её передачи. Это делается следующим способом:
Групповые привилегии
Роль получает привилегии своих групповых ролей. Нужно ли ей будет для получения привилегий выполнять SET ROLE зависит от атрибута роли, который мы можем указать при создании роли, как было показано на предыдущем уроке:
- INHERIT – атрибут роли, который включает автоматическое наследование привилегий;
- NOINHERIT – атрибут роли, который требует явное выполнение SET ROLE.
В 13 PostgreSQL при инициализации кластера создаются следующие роли вместе с суперпользователем postgres:
- pg_signal_backend – право посылать сигналы обслуживающим процессам, например можно вызвать функцию pg_reload_conf() или завершить процесс с помощью функции pg_terminate_backend();
- pg_read_all_settings – право читать все конфигурационные параметры, даже те, что обычно видны только суперпользователям;
- pg_read_all_stats – право читать все представления pg_stat_* и использовать различные расширения, связанные со статистикой, даже те, что обычно видны только суперпользователям;
- pg_stat_scan_tables – право выполнять функции мониторинга, которые могут устанавливать блокировки в таблицах, возможно, на длительное время;
- pg_monitor – право читать и выполнять различные представления и функции для мониторинга. Эта роль включена в роли pg_read_all_settings, pg_read_all_stats и pg_stat_scan_tables;
- pg_read_server_files – право читать файлы в любом месте файловой системы, куда имеет доступ postgres на сервере. А также выполняя копирование и другие функции работы с файлами;
- pg_write_server_files – право записывать файлы в любом месте файловой системы, куда имеет доступ postgres на сервере. А также выполнять копирование и другие функции работы с файлами.
- pg_execute_server_program – право выполнять программы на сервере (от имени пользователя, запускающего СУБД).
Псевдо роль public
Псевдо роль public не видна, но про неё следует знать. Это групповая роль, в которую включены все остальные роли. Это означает, что все роли по умолчанию будут иметь привилегии наследуемые от public. Поэтому иногда у public отбирают некоторые привилегии, чтобы отнять их у всех пользователей.
Роль public по умолчанию имеет следующие привилегии:
- для всех баз данных:
- CONNECT – это означает что любая созданная роль сможет подключаться к базам данных, но не путайте с привилегией LOGIN;
- TEMPORARY – любая созданная роль сможет создавать временные объекты во всех база данных и объекты эти могут быть любого размера;
- для схемы public:
- CREATE (создание объектов) – любая роль может создавать объекты в этой схеме;
- USAGE (доступ к объектам) – любая роль может использовать объекты в этой схеме;
- для схемы pg_catalog и information_schema:
- USAGE (доступ к объектам) – любая роль может обращаться к таблицам системного каталога;
- для всех функций:
- EXECUTE (выполнение) – любая роль может выполнять любую функцию. Ещё нужны ещё права USAGE на ту схему, в которой функция находится, и права к объектам к которым обращается функция.
Это сделано для удобства, но снижает безопасность сервера баз данных.
Привилегии по умолчанию
Привилегии по умолчанию – это такие привилегии, которые добавятся к каким-то ролям на объект при его создании. Например роль Алиса хочет чтобы при создании новой таблицы доступ к ней сразу же получала роль Боб.
Привилегии по умолчанию создаются командой ALTER DEFAULT PRIVILEGES:
В примере выше это может быть, например таблица, функция, представление и т.п. То есть создаём мы какой-то объект из этого класса и сразу срабатывает команда выдачи привилегий: GRANT ON . .
Аналогично можно удалять такие привилегии:
Например сделаем так, чтобы при создании функций (любым пользователем), право их выполнять забиралось у роли public:
Затем вам придется отдельным ролям давать эту привилегию вручную. Или можете сделать отдельную групповую роль, которая сможет выполнять функции, и включать неё другие роли.
Практика
Выдаем различные привилегии на объекты
Подключимся к базе данных postgres под ролью postgres. Затем создадим роль alice и создадим схему alice. Дальше дадим Алисе привилегии создавать и использовать объекты в схеме alice. И наконец подключимся под Алисой:
Дальше нужно вспомнить что если мы для роли создали одноимённую схему, то по умолчанию для этой роли будет использоваться эта схема.
Под Алисой создадим 2 таблицы, затем переключимся на роль postgres и дадим Бобу право подключаться к базам:
Теперь переключимся на роль Боб и под ним попытаемся прочитать табличку t1 в схеме alice:
Возникла ошибка, так как у Боба нет привилегии USAGE на схему alice.
Посмотрим какие есть привилегии у схемы alice с помощью команды \dn+:
В поле “Access privileges” написаны построчно привилегии в следующем формате: роль=привилегии/кем_выданы.
Привилегии сокращаются по первой букве:
Подключимся под Алисой и попробуем от неё выдать права Бобу:
Ошибка появилась потому-что Алиса не является владельцем этой схемы и не имеет право передавать привилегии.
Переключимся на роль postgres и сделаем Алису владельцем схемы alice:
Снова переключимся на Алису и выдадим права Бобу:
Попробуем под Бобом снова прочитать табличку Алисы:
Снова не получилось, так как у Боба нет привилегии читать (SELECT) эту таблицу.
Посмотрим привилегии на эту таблицу с помощью команды \dp:
Привилегии записаны в колонке “Access privileges“. Здесь пока пусто, это означает что владелец может всё, остальные ничего. А для суперпользователя проверки не выполняются, поэтому он тоже может всё. В этой колонке появится информация, если мы выдадим или заберём привилегии у кого-нибудь для этой таблицы.
Переключимся опять на Алису, под которой выдадим привилегию SELECT на таблицу t1 для Боба. И снова проверим привилегии:
Теперь мы видим 2 строки: для Алисы и для Боба. Привилегии сокращаются таким образом:
- a – insert;
- r – select;
- w – update;
- d – delete;
- D – truncate;
- x – reference;
- t – trigger.
Наконец Боб может выполнить запрос:
Но вставить в эту таблицу он ничего не может, так как привилегии INSERT у Боба нет:
Привилегии на отдельные столбцы
Некоторые привилегии (INSERT и SELECT) можно выдавать на столбцы.
Переключимся на Алису, и дадим бобу INSERT на колонки m и n, и SELECT на колонку m. Затем просмотрим привилегии на таблицу t2:
В колонке “Column privileges” видны привилегии для отдельных столбцов. Видно что для столбца n Боб может только вставлять строки, а для столбца m вставлять и читать.
Проверим привилегии Боба на практике:
Из этого следует, что Боб смог вставить данные и в столбец n и в столбец m. А прочитать всё он не смог, так как нет прав на чтения для столбца n. Зато отдельно столбец m Боб прочитать смог.
Если необходимо Алиса может выдать все привилегии Бобу с помощью слова all:
Теперь Бобу доступны все действия, например, удаление строк:
Но саму таблицу Боб удалить не сможет, так как удалить таблицу может только её владелец или суперпользователь:
Работа с ролью public
Алиса может выдать некоторые привилегии групповой роли public, чтобы эти привилегии появились у всех остальных:
При выполнении команды \dp, роль public не пишется, поэтому получается такая запись =w/alice.
Теперь Боб попробует воспользоваться привилегией UPDATE для этой таблице:
Команде UPDATE для того чтобы что-то изменить нужно вначале это прочитать. А привилегии на чтение у Боба нет. Дадим с помощью Алисы ему это право и попробуем выполнить UPDATE ещё раз:
Выдача права передавать привилегии
Переключимся на пользователя postgres и создадим ещё одну роль “Чарли”:
Боб имеет полный набор привилегий для таблицы t1. Но передать эти привилегии не может:
Алиса может дать Бобу право передачи некоторых привилегий:
В выводе выше звёздочки возле привилегий означают, что эти привилегии роль может передавать другим.
Теперь Боб может передать эти привилегии для Чарли и даже дать ему также право передавать эти привилегии другим:
Если привилегию выдаёт суперпользователь, то вместо него команда \dp выводит владельца:
Роль может отнимать привилегии только те, которые она и выдавала. Поэтому информация о том, кто что выдавал сохраняется. Таким образом если Боб отнимет привилегии у Чарли, то у Чарли останутся те привилегии, которые ему дала Алиса (или суперпользователь).
А если роль не выдавала какую-то привилегию, то при удалении этой привилегии никакой ошибки не будет, просто привилегии не изменятся. Например, Алиса может попытаться отобрать у Чарли право передачи привилегий на SELECT (GRANT OPTION FOR SELECT). Но это право для Чарли выдавал Боб, а не Алиса. Запрос выполнится без ошибок, но ничего не изменится:
Ситуация описанная выше может ввести в заблуждение. Вроде право передачи привилегий отняли, а на самом деле не отняли.
Алиса может попытаться отобрать у Боба право передачи привилегий. Но так как Боб уже воспользовался своим правом и передал право передачи привилегий ещё одному пользователю, то у Алисы ничего не получится:
Алиса забрать это право может только каскадно, что мы и сделаем:
В выводе можем заметить, что у Боба право передачи для SELECT исчезло, но сама привилегия SELECT осталась. А у Чарли привилегия SELECT и право её передавать исчезли.
Дополнительно под Алисой отнимем привилегию UPDATE у Боба, тоже каскадно:
Работа с функциями
Теперь поработаем с функциями. Пусть Алиса создаст функцию, которая будет считать количество строк в таблице t1 и возвращать это значение (в синтаксис функции можете не вникать):
Теперь попробуем выполнить эту функцию под Бобом:
Боб может выполнить эту функцию, так как по умолчанию псевдо роль public может выполнять любые функции. Но так как прав на табличку t2 у Боба нету, то на команде SELECT из функции мы получили ошибку.
Боб может в своей схеме (public) создать свою табличку t2 и выполнить функцию относительно неё. А у Алисы по умолчанию схема alice, поэтому для неё функция будет работать для другой таблицы. Вот пример:
Алиса при создании функции может указать, что при выполнении функции она будет работать от имени владельца (Алисы), а не от имени того кто эту функцию выполняет. Для этого используется опция SECURITY DEFINER при создании функции:
Так как функция сработала от имени Алиса, то и обратилась она к схеме alice и в ней нашла таблицу.
Такие функции обычно создаются для контролируемого доступа. Например Бобу нельзя читать таблицу, но мы хотим дать ему право посчитать количество строк в таблице. Таким образом через функции даём доступ к объектам.
Теперь отнимем у всех (public) привилегию выполнять функции в схеме alice:
Команда выше удалила привилегию EXECUTE для всех существующих функций. Если Алиса создаст новую, то у public сразу появится возможность её выполнить:
Привилегии по умолчанию
С помощью привилегий по умолчанию можно автоматически удалять привилегии с новых объектах. Например когда Алиса будет создавать какую-нибудь функцию, то нужно чтобы сразу у роли public отнимались привилегии на её выполнение:
Команда выше делает так, что когда Алиса создает любую функцию, привилегия FUNCTIONS сразу отнимается у public.
Посмотреть такие привилегии по умолчанию можно с помощью команды \ddp:
В выводе выше мы видим что для функций Алисы будут отниматься привилегии (буква X).
Проверим. Удалим функцию и заново её создадим. И попробуем её вызвать под Бобом:
Аналогично, с помощью привилегий по умолчанию, можно настроить чтобы Боб автоматически получал какие-нибудь привилегии. Например при создании таблиц привилегии на их чтение:
Теперь если Алиса создаст табличку, то у Боба сразу появится привилегия SELECT на табличку:
Источник