270 likes | 390 Views
Пользователи и привилегии. Пользователи: anonymous localuser@localhost globaluser@host. Пользователи и привилегии. Привилегии: SELECT INSERT UPDATE, DELETE административные специфичные. Пользователи и привилегии. Две ступени проверки доступа: Можно подключиться?
E N D
Пользователи и привилегии • Пользователи: • anonymous • localuser@localhost • globaluser@host
Пользователи и привилегии • Привилегии: • SELECT • INSERT • UPDATE, DELETE • административные • специфичные
Пользователи и привилегии • Две ступени проверки доступа: • Можно подключиться? • Можно выполнить действие?
Пользователи и привилегии • База данных `mysql`: • пользователи, • привилегии, • системные данные, • ... • Неудобно!
Пользователи и привилегии Создание пользователя: CREATE USER 'user'@'host' IDENTIFIED BY 'password'; CREATE USER shurup@'%' IDENTIFIED BY 'qwe';
Пользователи и привилегии Удаление пользователя: DROP USER 'user'@'host'; DROP USER shurup@'%';
Пользователи и привилегии Переименование пользователя: RENAME USER 'user' TO 'user2';
Пользователи и привилегии Смена пароля: SET PASSWORD FOR 'user'@'host' = PASSWORD('newpassword');
Пользователи и привилегии Смена пароля: SET PASSWORD FOR 'shurup'@'%' = PASSWORD('ewq'); FLUSH PRIVILEGES;
Пользователи и привилегии Выдача привилегий: GRANT priv_type [(cols)] ON [object_type] `db_name`.`table_name` TO 'user'@'host';
Пользователи и привилегии Выдача привилегий: GRANT ALL ON `test`.* TO 'shurup'@'%'; FLUSH PRIVILEGES;
Пользователи и привилегии • Типы привилегий: • ALL, • Для таблиц: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, GRANT OPTION • Админ.: CREATE USER, SHOW DATABASES, SHUTDOWN...
Пользователи и привилегии Выдача привилегий: GRANT SELECT (`name`,`city`), INSERT (`name`) ON `test`.`girls` TO 'shurup'@'%';
Пользователи и привилегии Выдача привилегий: GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
Пользователи и привилегии Снятие привилегий: REVOKE priv_type [(cols)] ON [object_type] `db_name`.`table_name` FROM 'user'@'host';
Пользователи и привилегии Снятие привилегий: REVOKE ALL ON *.* FROM 'shurup'@'%';
Представления Представление – запрос на выборку, сохраненный в базе данных под каким-то названием. ”Виртуальная таблица”.
Представления • Зачем? • Безопасность • Простота запросов • Простота структуры
Представления • Недостатки • Производительность • Ограниченность обновления
Представления • Типы • Горизонтальные • Вертикальные • Смешанные • Сгруппированные • Объединенные
Представления в MySQL Создание CREATE VIEW `name` [(cols)] AS SELECT ... FROM ... [WHERE ...];
Представления в MySQL CREATE VIEW `cities` AS SELECT `city` FROM `boys` UNION SELECT `city` FROM `girls`;
Представления в MySQL SELECT * FROM `cities`; +------------------+ | city | +------------------+ | Питер | | Дмитров | | Белгород | +--------------------+
Представления в MySQL Удаление DROP VIEW [IF EXISTS] `name`; DROP VIEW `cities`;
Представления в MySQL Модификация ALTER VIEW `name` [(cols)] AS SELECT ... FROM ... [WHERE ...];
Полезные мелочи AS SELECT `col1` AS `good`, `col2` AS `bad` FROM `table1` AS `ugly` WHERE `ugly`.`bad` > `ugly`.`good`;
Полезные мелочи SHOW SHOW DATABASES; SHOW TABLES; SHOW CREATE TABLE `t1`; SHOW WARNINGS; SHOW GRANTS;