LINUX.ORG.RU

Запутался с привилегиями mysql


0

1

Только начал разбираться как работают привилегии в mysql

Меня жестко сбила с толку вот такая штука, создал пользователя:

CREATE USER user@localhost IDENTIFIED BY "pass";

Установил такие права.

update user set 
 Select_priv="Y",
 Insert_priv="Y",
 Update_priv="Y",
 Delete_priv="Y",
 Create_priv="Y",
 Drop_priv="Y",
 Reload_priv="N",
 Shutdown_priv="N",
 Process_priv="N",
 File_priv="N",
 Grant_priv="N",
 References_priv="N",
 Index_priv="N",
 Alter_priv="N",
 Show_db_priv="N",
 Create_tmp_table_priv="N",
 Lock_tables_priv="N",
 Execute_priv="N",
 Repl_slave_priv="N",
 Repl_client_priv="N",
 Create_view_priv="N",
 Show_view_priv="N",
 Create_routine_priv="N",
 Alter_routine_priv="N",
 Create_user_priv="N",
 Event_priv="N",
 Trigger_priv="N",
 Create_tablespace_priv="N"  where user="user";

И почему то с такими правами пользователь видит базу mysql и естественно может делать с ней что хочет.

Забавно то что если везде поставить N а на Select_priv=«Y», то пользователь так же видит эти бд.

Как сделать так чтобы пользователь не видел эти служебные базы?

select * from user limit 3, 1 \G                                                                                                                                                   
*************************** 1. row ***************************                                                                                                                            
                 Host: localhost                                                                                                                                                          
                 User: pullout                                                                                                                                                            
             Password: *4C3FEB60F46458A6520B722084EAF819C0CC5BD1                                                                                                                          
          Select_priv: N                                                                                                                                                                  
          Insert_priv: N                                                                                                                                                                  
          Update_priv: N                                                                                                                                                                  
          -- все остальное в нет выстввлено                                                                                                                                             
1 row in set (0.00 sec)  


mysql> select * from db where user = 'pullout' \G                                                                                                                                         
*************************** 1. row ***************************                                                                                                                            
                 Host: *                                                                                                                                                                  
                   Db: pullout                                                                                                                                                            
                 User: pullout                                                                                                                                                            
          Select_priv: Y                                                                                                                                                                  
          Insert_priv: Y                                                                                                                                                                  
          Update_priv: Y                                                                                                                                                                  
          Delete_priv: Y                                                                                                                                                                  
          Create_priv: Y                                                                                                                                                                  
            Drop_priv: Y                                                                                                                                                                  
           Grant_priv: N                                                                                                                                                                  
      References_priv: Y                                                                                                                                                                  
           Index_priv: Y                                                                                                                                                                  
           Alter_priv: Y                                                                                                                                                                  
Create_tmp_table_priv: Y                                                                                                                                                                  
     Lock_tables_priv: Y                                                                                                                                                                  
     Create_view_priv: Y                                                                                                                                                                  
       Show_view_priv: Y                                                                                                                                                                  
  Create_routine_priv: Y                                                                                                                                                                  
   Alter_routine_priv: Y                                                                                                                                                                  
         Execute_priv: Y
       

stiner_rd
()
Ответ на: комментарий от stiner_rd

Понятно, спасибо!

А как правильно сделать и не накосячить, чтобы созданный юзер мог создавать свои базы и видеть только их.

При этом дать права на индексы, тригеры, процедуры, временные таблицы и прочее

Чтобы рута не дергать

spiritkhl
() автор топика
Ответ на: комментарий от spiritkhl

раз штатными средствами просто не сделаешь, может есть какие нибудь простенькие утилиты?

Или писать самому придется

spiritkhl
() автор топика
Ответ на: комментарий от spiritkhl

А вообще спасибо всем, теперь мне все понятно.

spiritkhl
() автор топика
Ответ на: комментарий от stiner_rd

А как правильно сделать и не накосячить, чтобы созданный юзер мог создавать свои базы и видеть только их.

При этом дать права на индексы, тригеры, процедуры, временные таблицы и прочее

никак

Если добавить разрешения для пользователя и базы username\_%, то вроде должно сработать.

gruy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.