SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.07.2011 11:08:31

Igor Tarasov (ITSoft)
Участник
Зарегистрирован: 21.07.2011
Сообщений: 2

TRIGGER и DEFINER -- проблема с разруливанием прав доступа

Есть у меня триггер у которого DEFINER задан в виде пользователя, который имеет полные права на базу.

Выполняю вставку данных пользоватлем itcms4_ro с урезанными правами. Получаю

1142: TRIGGER command denied to user 'itcms4_dev'@'%' for table 'it_crm_msg' in SQL =INSERT INTO it_crm_msg (branch_id, name, subj, description, status, cdate) VALUES ('0', 'Игорь Тарасов', 'Первая тестовая заявка', 'а м м', '3', NOW())

При этом вставка данных проходит.

SHOW GRANTS FOR 'itcms4_dev'@'%' выдает
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `itcms4`.* TO 'itcms4_dev'@'%' WITH GRANT OPTION

MySQL 5.5.10

DROP TRIGGER IF EXISTS `itcms4`.`ai_crm_msg`;
DELIMITER //
CREATE DEFINER=`itcms4_dev`@`%` TRIGGER `itcms4`.`ai_crm_msg` AFTER INSERT ON `itcms4`.`it_crm_msg`
FOR EACH ROW BEGIN
UPDATE it_crm_msg SET last_branch_msg_id=NEW.id, last_branch_msg_name=NEW.name, lastmodified=NEW.cdate, q_msgs=q_msgs+1 WHERE id=NEW.branch_id;
END
//


CREATE TABLE IF NOT EXISTS `it_crm_msg` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `branch_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'ID ветки',
  `last_branch_msg_id` int(10) unsigned DEFAULT NULL,
  `employee_id` int(10) unsigned NOT NULL,
  `client_id` int(10) unsigned NOT NULL,
  `dep_id` int(11) NOT NULL DEFAULT '0' COMMENT 'Отдел',
  `name` varchar(32) NOT NULL COMMENT 'ФИО',
  `subj` varchar(128) NOT NULL COMMENT 'Тема',
  `description` text NOT NULL COMMENT 'Сообщение',
  `cdate` datetime NOT NULL COMMENT 'Дата создания',
  `last_branch_msg_name` varchar(32) NOT NULL COMMENT 'Последнее сообщение от',
  `lastmodified` datetime NOT NULL COMMENT 'Дата последнего ответа',
  `status` int(10) NOT NULL DEFAULT '0' COMMENT 'Статус',
  `q_msgs` int(11) NOT NULL DEFAULT '0' COMMENT 'Количество сообщений',
  `q_views` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Количество просмотров',
  `service_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '№ услуги (договора, заказа)',
  PRIMARY KEY (`id`),
  KEY `branch_id` (`branch_id`),
  KEY `last_branch_msg_id` (`last_branch_msg_id`),
  KEY `employee_id` (`employee_id`),
  KEY `client_id` (`client_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;


Странно, что PHPMyAdmin при экспорте у триггера DEFINER не пишет. Это возможно он  у меня устарел.

Если кто поможет, буду признателен. В Москве пивом при случае угощу. smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson