MySQL рдореЗрдВ рдСрдбрд┐рдЯ рдФрд░ рдмрд╛рд╣рд░реА рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдЖрдк рдЕрдкрдиреЗ MySQL DBMS рдХреЛ PCI DSS рдорд╛рдирдХреЛрдВ рдХреЗ рдХрд░реАрдм рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓реЗрдЧрд╛:
рдХрдВрд╕реЛрд▓ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ mcshadow
 mcshadow: ~ $ mysql --user = mcshadow --password = mike mysql> current_user () рдЪреБрдиреЗрдВ;  + ---------------- + |  current_user () |  + ---------------- + |  mike @ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ |  + ---------------- + mcshadow: ~ $ mysql --user = mcshadow --password = root mysql> current_user () рдЪреБрдиреЗрдВ;  + ---------------- + |  current_user () |  + ---------------- + |  рд░реВрдЯ @ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ |  + ---------------- + 

рдПрдХреНрд╕реЗрд╕ рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдФрд░ рдирд╢реНрд╡рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдЗрдХ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рд╕рдВрднрд╡ рд╣реИред


рдорд╛рдЗрдХ рдирд╢реНрд╡рд░ рд╕рд╛рдВрддреНрд╡рдирд╛
  рдорд╛рдЗрдХ: ~ $ mysql --user = mcshadow --password = рдорд╛рдЗрдХ
 ERROR 1698 (28000): рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 'mcshadow' @ 'localhost' рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рдирд┐рд╖реЗрдз 

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рддрд╣рдд рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред


рдЗрд╕ рдмреАрдЪ syslog рдореЗрдВ
mysqld: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: mcshadow TRY рд╕реЗ рдкрд╣реБрдВрдЪ: рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп: рдорд╛рдЗрдХ
mysqld: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: mcshadow SUCCESS рд╕реЗ рдкрд╣реБрдВрдЪ: рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп: рдорд╛рдЗрдХ
mysql: SYSTEM_USER: 'mcshadow', MYSQL_USER: 'mcshadow', CONNECTION_ID: 5, DB_SERVER: '-', DB: '-', COMMOD_RESULT: SUCCESS, QUERY: 'select current_user ();'
mysqld: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: mcshadow TRY рд╕реЗ рдкрд╣реБрдВрдЪ: рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: рд░реВрдЯ
mysqld: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: mcshadow SUCCESS рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛: рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: рд░реВрдЯ
mysql: SYSTEM_USER: 'mcshadow', MYSQL_USER: 'mcshadow', CONNECTION_ID: 6, DB_SERVER: '-', DB: '-', COMMOD_RESULT: SUCCESS, QUERY: 'select current_user ();'
mysqld: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: mcshadow TRY рд╕реЗ рдкрд╣реБрдВрдЪ: рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп: рдорд╛рдЗрдХ
mysqld: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: mcshadow рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛: рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: рдорд╛рдЗрдХ


рдкрд░рд┐рдЪрдп


рдкреЛрд╕реНрдЯ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, "рдЖрдЬ рдореИрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реЛрдЧрд╛" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдерд╛, рд▓реЗрдХрд┐рди рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред
рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдмрдбрд╝реА рдХрдВрдкрдиреА рдореЗрдВ DBMS рдХреЗ рд░реВрдк рдореЗрдВ MySQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ, рдЬреИрд╕реЗ: MySQL рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд╛рд╕рд╡рд░реНрдб рдиреАрддрд┐ рдирд╣реАрдВ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреНрд░рд┐рдХреА рдпреЛрдЬрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдЕрдкрдиреЗ рд╕рдВрдЧрдарди рдореЗрдВ рдЕрдкрдирд╛рдП рдЧрдП рдорд╛рдирдХреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рдПрд╕рдУ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЖрджрд┐ред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдлрд▓ рдФрд░ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЕрдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдбреАрдмреАрдП рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рднреА рдмреЗрд╣рдж рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЕрдХреНрд╕рд░ рдЕрдкрдиреЗ рд▓реЙрдЧрд┐рди рдХреЗ рддрд╣рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдпрд╛ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рди рдЬрд╛рдиреЗрдВ, рд╕рд╛рде рд╣реА рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рд▓реЙрдЧ рдореЗрдВ рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдкрдХреЛ рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рднреА рдирд╣реАрдВред рд╕рдВрд╕реНрдХрд░рдг 5.5.7+ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ MySQL рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рднрд╛рд░ рдкреИрджрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд▓реЗрдЦ рдкреНрд░рдХреГрддрд┐ рдореЗрдВ рд╢реИрдХреНрд╖рд┐рдХ рд╣реИ, рдХрд┐рд╕реА рднреА рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ, рд╡рд░реНрдгрд┐рдд рд▓реЛрдЧреЛрдВ рд╕рд╣рд┐рдд, рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рд╣реИред

рд╕рд┐рджреНрдзрд╛рдВрдд


рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рдорд┐рд▓рдирд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рд╣рдо, "рдЕрдиреБрднрд╡реА" рдЖрд╡реЗрджрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдЦреБрдж рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ, рд╣рдо рд╕рд┐рд░реНрдл рдПрдХ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд╕ рдПрдХ рд╕реНрд░реЛрдд рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛: рд╣рдо рдкреЗрд░рдХреЛрдирд╛ рд╕реЗ MySQL рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рдВрдЧ рд▓реЗрддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо MySQL 5.5.X рдФрд░ Percona 5.5.X рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рдореЗрдВ рд╣реИ рдХрд┐ Perkon рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдм рдХреБрдЫ syslog рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рд╣рдореЗрдВ рд╕рд┐рд░реНрдл рдЗрди рд╕реЛрд░реНрд╕ рдХреЛрдбреНрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдФрд░ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдмрдирд╛рдПрдВред рдЖрдк рдмрд╕ рдкреЗрд░рдХреЛрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд MySQL рдХреНрд▓рд╛рдЗрдВрдЯ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдиреЗ рд╕реЗ рдбрд░рддреЗ рд╣реИрдВред
рджреВрд╕рд░рд╛: рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХрд╛ рд▓реЙрдЧрд┐рдВрдЧ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рдкрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдХрдо рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХрд┐ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? MySQL рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ рдПрдХ log.cc рдлрд╝рд╛рдЗрд▓ рд╣реИ - рдпрд╣ general_log рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ ред рдпрд╣ рд▓реЙрдЧ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдлрд▓ рдФрд░ рдЕрд╕рдлрд▓ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдпрд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдореИрдВ рдЖрдкрдХреЛ рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдФрджреНрдпреЛрдЧрд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВред рд╣рдореЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЗрд╡рд▓ рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп_рд▓реЙрдЧ_рдкреНрд░рд┐рдВрдЯ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп_рд▓реЙрдЧ_рд░рд╛рдЗрдЯ рд▓реЙрдЧ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдкрд╕реАрдирд╛ рдмрд╣рд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдВ рдмрджрд▓рдирд╛ рд╣реИред
рддреАрд╕рд░рд╛: рдФрд░ рд╢рд╛рдпрдж рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд MySQL 5.5.7 GRANT PROXY рдХреА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред
  рдЕрдиреБрджрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
   'Private_user' @ 'localhost' рдкрд░
   'Real_user' @ 'localhost' рдХреЗ рд▓рд┐рдП; 

рдЗрд╕ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ real_user рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  рдирд┐рд░реНрдорд╛рддрд╛ 'real_user' @ 'localhost' рдмрдирд╛рдПрдБ
   рдЖрдИрдбреАрдИрдЖрдИрдПрдлрдЖрдИрдП рдХреЗ рд╕рд╛рде 'рдУрдбрд┐рдЯ_рдкреНрд▓рдЧрд┐рди_рдПрдХреНрд╕рдПрдХреНрд╕рдПрдХреНрд╕' рдХреЗ рд░реВрдк рдореЗрдВ 'рдУрдбрд┐рдЯ_рд╕реНрдЯреНрд░рд┐рдВрдЧ'; 

рдЕрдм, рдЬрдм real_user рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛ рд░рд╣рд╛ рд╣реИ , рддреЛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рди рдХреЗрд╡рд▓ рдорд╛рдВрд╕рдкреЗрд╢реА рджреНрд╡рд╛рд░рд╛ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕реЗ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдкреНрд▓рдЧ рдЗрди рдкрд░ рднреА рдбрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - dif_plugin_xxx ред рдЖрдк рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕реНрд╡рдпрдВ, tynt , рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИ, рд╣рдо рдЕрднреА рддрдХ рдРрд╕реА рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐: рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MySQL рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд▓рд┐рдЦреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ рдХрд┐ рдпрд╣ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рддрд░реНрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдлрд╝реАрд▓реНрдб рдЬрд┐рд╕рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╕рддреНрд░ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдВрдЧреЗред рдФрд░ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ real_user рдХреЗ рдкрд╛рд╕ рдЫрджреНрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдЕрдзрд┐рдХрд╛рд░ рд╣реИрдВ, рддреЛ MySQL рд╣рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рднреА Private_user рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЗрд╕ рдкреНрд▓рдЧ-рдЗрди рдореЗрдВ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдпрд╛ ldap рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ SSO рдХреЛ рдХреЙрд▓ рдкреБрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдиреНрдп рддрд░реНрдХ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрднреА рдХреЗ рд▓рд┐рдП, рдкрд░реНрдпрд╛рдкреНрдд рд╕рд┐рджреНрдзрд╛рдВрдд - рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ MySQL 5.5.15 рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред

рдЕрднреНрдпрд╛рд╕


рдкрд╣рд▓рд╛ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреНрд░рд┐рдпрд╛ рд▓реЙрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕рд░реНрд╡рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╕реЙрдХреЗрдЯ рдпрд╛ рдЯреАрд╕реАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ - рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рд╢рд╛рд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред Mysql.cc рдореЗрдВ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:
#include <violite.h> //     Linux   syslog #ifndef __WIN__ #include "syslog.h" #endif ... void tee_putc(int c, FILE *file); //       void write_syslog(String *buffer); ... //       Percona        .     : mysql_error(&mysql)[0] void write_syslog(String *line){ #ifndef __WIN__ uint length= line->length(); uint chunk_len= min(MAX_SYSLOG_MESSAGE, length); char *ptr= line->c_ptr_safe(); char buff[MAX_SYSLOG_MESSAGE + 1]; for (; length; length-= chunk_len, ptr+= chunk_len, chunk_len= min(MAX_SYSLOG_MESSAGE, length)) { char *str; if (length == chunk_len) str= ptr; // last chunk => skip copy else { memcpy(buff, ptr, chunk_len); buff[chunk_len]= '\0'; str= buff; } syslog(LOG_INFO, "SYSTEM_USER:'%s', MYSQL_USER:'%s', CONNECTION_ID:%lu, " "DB_SERVER:'%s', DB:'%s', COMMAND_RESULT:%s, QUERY:'%s'", getenv("SUDO_USER") ? getenv("SUDO_USER") : getenv("USER") ? getenv("USER") : "--", current_user ? current_user : "--", mysql_thread_id(&mysql), current_host ? current_host : "--", current_db ? current_db : "--", mysql_error(&mysql)[0]?"FAILED":"SUCCESS", str); } #endif } ... #endif /*HAVE_READLINE*/ //       #ifndef __WIN__ if (buffer->length() && connect_flag == CLIENT_INTERACTIVE){ write_syslog(buffer); } #endif 

рджреВрд╕рд░рд╛ рд╡рд╛рд▓рд╛ред рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд▓реЙрдЧрд┐рди рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рд╡рд╛рд▓рд╛ рдореБрдЦреНрдп рдореЙрдбреНрдпреВрд▓ sql_acl.cc рд╣реИ ред рд╕рднреА general_log_print рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж - рд╣рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ, general_log рдЕрдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди рдЯрд┐рдк рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рджреВрд╕рд░реЗ рдХрдорд╛рдВрдб ( general_log_write ) рдХреЛ рддрдм рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛ (рдирдП рдмреНрд▓реЙрдХ PCI DSS рдкреИрдЪ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ):
 // PCI DSS patch #ifndef __WIN__ #include "syslog.h" #endif // end PCI DSS patch ... //  login_failed_error -      general_log_print(thd, COM_CONNECT, ER(ER_ACCESS_DENIED_NO_PASSWORD_ERROR), mpvio->auth_info.user_name, mpvio->auth_info.host_or_ip); // PCI DSS patch syslog(LOG_WARNING, "User:%s FAILED access from:%s with privileges:%s", mpvio->auth_info.user_name, mpvio->auth_info.host_or_ip, mpvio->auth_info.authenticated_as); // end PCI DSS patch ... general_log_print(thd, COM_CONNECT, ER(ER_ACCESS_DENIED_ERROR), mpvio->auth_info.user_name, mpvio->auth_info.host_or_ip, passwd_used ? ER(ER_YES) : ER(ER_NO)); // PCI DSS patch syslog(LOG_WARNING, "User:%s FAILED access from:%s with privileges:%s", mpvio->auth_info.user_name, mpvio->auth_info.host_or_ip, mpvio->auth_info.authenticated_as); // end PCI DSS patch ... //  secure_auth -        if (mpvio->client_capabilities & CLIENT_PROTOCOL_41) { my_error(ER_SERVER_IS_IN_SECURE_AUTH_MODE, MYF(0), mpvio->auth_info.user_name, mpvio->auth_info.host_or_ip); general_log_print(thd, COM_CONNECT, ER(ER_SERVER_IS_IN_SECURE_AUTH_MODE), mpvio->auth_info.user_name, mpvio->auth_info.host_or_ip); // PCI DSS patch syslog(LOG_WARNING, "User:%s FAILED access from:%s with privileges:%s", mpvio->auth_info.user_name, mpvio->auth_info.host_or_ip, mpvio->auth_info.authenticated_as); // end PCI DSS patch } else { my_error(ER_NOT_SUPPORTED_AUTH_MODE, MYF(0)); general_log_print(thd, COM_CONNECT, ER(ER_NOT_SUPPORTED_AUTH_MODE)); // PCI DSS patch syslog(LOG_WARNING, "Auth mode not supported"); // end PCI DSS patch } ... //  send_plugin_request_packet -             general_log_print(current_thd, COM_CONNECT, ER(ER_NOT_SUPPORTED_AUTH_MODE)); // PCI DSS patch syslog(LOG_WARNING, "Auth mode not supported"); // end PCI DSS patch ... // find_mpvio_user general_log_print(current_thd, COM_CONNECT, ER(ER_NOT_SUPPORTED_AUTH_MODE)); // PCI DSS patch syslog(LOG_WARNING, "Auth mode not supported"); // end PCI DSS patch ... //  acl_authenticate -      main   if (strcmp(mpvio.auth_info.authenticated_as, mpvio.auth_info.user_name)) { general_log_print(thd, command, "%s@%s as %s on %s", mpvio.auth_info.user_name, mpvio.auth_info.host_or_ip, mpvio.auth_info.authenticated_as ? mpvio.auth_info.authenticated_as : "anonymous", mpvio.db.str ? mpvio.db.str : (char*) ""); // PCI DSS patch syslog(LOG_WARNING, "User:%s TRY access from:%s with privileges:%s", mpvio.auth_info.user_name, mpvio.auth_info.host_or_ip, mpvio.auth_info.authenticated_as); // end PCI DSS patch } else { general_log_print(thd, command, (char*) "%s@%s on %s", mpvio.auth_info.user_name, mpvio.auth_info.host_or_ip, mpvio.db.str ? mpvio.db.str : (char*) ""); // PCI DSS patch syslog(LOG_WARNING, "User:%s TRY access from:%s with privileges:%s", mpvio.auth_info.user_name, mpvio.auth_info.host_or_ip, mpvio.auth_info.authenticated_as); // end PCI DSS patch } ... if (res > CR_OK && mpvio.status != MPVIO_EXT::SUCCESS) { DBUG_ASSERT(mpvio.status == MPVIO_EXT::FAILURE); if (!thd->is_error()) login_failed_error(&mpvio, mpvio.auth_info.password_used); DBUG_RETURN (1); } // PCI DSS patch else syslog(LOG_WARNING, "User:%s SUCCESS access from:%s with privileges:%s", mpvio.auth_info.user_name, mpvio.auth_info.host_or_ip, mpvio.auth_info.authenticated_as); // end PCI DSS patch 

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг 2 рдФрд░ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╣реИ рдЬрдм рдЖрдк рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ ред Sql_db.cc рдореЙрдбреНрдпреВрд▓ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ ; рд╕рд╛рдорд╛рдиреНрдп рд▓реЙрдЧ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж mysql_change_db рдлрд╝рдВрдХреНрд╢рди рдЗрд╕рдореЗрдВ рд╣реИ , рдФрд░ рд╕реМрднрд╛рдЧреНрдп рд╕реЗ , рд╣рдо рдЕрдкрдиреА рд▓рд╛рдЗрдиреЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
  general_log_print(thd, COM_INIT_DB, ER(ER_DBACCESS_DENIED_ERROR), sctx->priv_user, sctx->priv_host, new_db_file_name.str); // PCI DSS patch syslog(LOG_WARNING, "User:%s FAILED access from:%s with privileges:%s", sctx->proxy_user, sctx->priv_host, sctx->priv_user); // end PCI DSS patch 

рдФрд░ рдЖрдЦрд┐рд░реА рдЪреАрдЬ рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрдиреА рд░рд╣рддреА рд╣реИ рд╡рд╣ рд╣реИ рдЙрд╕ рдкрд▓ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдЬреЛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред Sql_show.cc рдореЙрдбреНрдпреВрд▓ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рд╡рд╛рдХреНрдкрдЯреБ рдирд╛рдо mysqld_show_create_db рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рдЬреЛрдбрд╝рдирд╛:
  general_log_print(thd,COM_INIT_DB,ER(ER_DBACCESS_DENIED_ERROR), sctx->priv_user, sctx->host_or_ip, dbname); // PCI DSS patch syslog(LOG_WARNING, "User:%s FAILED access from:%s with privileges:%s", sctx->proxy_user, sctx->priv_host, sctx->priv_user); // end PCI DSS patch 

POSIX рдХреЗ рдЕрдиреБрд╕рд╛рд░, syslog рдлрд╝рдВрдХреНрд╢рди рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ; рдЗрд╕реЗ рдЧрд┐рд░рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЦрдВрдбреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЖрдП, рдпрд╣ рдмрд╣реБрдд рдзреАрдорд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдЕрдм рд╣рдо рд▓реЙрдЧ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдЕрдзрд┐рдХрд╛рд░ рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдВ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЫреЛрдЯреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдорд▓рд╛ рд╣реИред Zayuzat рдирдИ рд╕реБрд╡рд┐рдзрд╛ред рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЪрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рджреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдЙрдкрд╣рд╛рд░ рд╣реИред рдкрд╣рд▓рд╛ рдУрд░рд┐рдЬрд┐рди_рд╕реЛрдХреЗрдЯ.рд╕реА - рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдпрджрд┐ рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рдПрдХ рдмреЗрд╣рддрд░ рдХрдореА рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗ - рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рд╣рдорд╛рд░рд╛ рдПрд╕рдПрд╕рдУ рд╣реИред рдЕрдЧрд▓рд╛ рдкреНрд▓рдЧрдЗрди - test_plugin.c - рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдкреНрд▓рдЧрдЗрди рдирд╛рдо рдХреЗ рдмрд╛рдж ' рд▓рд╛рдЗрди рд▓рд╛рдЗрди ' рдХреЗ рд░реВрдк рдореЗрдВ рд░рд╣рд╕реНрдпрдордп рд░реЗрдЦрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд▓рдЧрдЗрди рдЗрд╕ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдкрд╛рд╕рд╡рд░реНрдб рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдорд┐рд▓рд╛рди рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ; рдпрджрд┐ рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЬрд┐рдирдХрд╛ рдирд╛рдо ' schem_string ' рд╣реИ, рдХреЛ рд╕рддреНрд░ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд▓рдЧрдЗрди, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ рдХрд┐ рддрдВрддреНрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд▓рдЧрдЗрди рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдирдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ-> рдкреНрд░рдорд╛рдгреАрдХреГрдд_рд╕ рдХреНрд╖реЗрддреНрд░, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд╛рдорд┐рдд, рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВ
 #define PASSWORD_USED_NO 0 #define PASSWORD_USED_YES 1 #define PASSWORD_USED_NO_MENTION 2 

рдореБрдЭреЗ рдореЗрдЬрдмрд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рдЙрдард╛рдпрд╛ред рд╕рднреА рдХреЗрд╡рд▓ рд▓реИрди рдХреЗ рд╕рд╛рдеред
рд╣рдо рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдврд╛рд▓рддреЗ рд╣реИрдВ (рдЕрдЪрд╛рдирдХ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ...)
 static int auth_test_plugin(MYSQL_PLUGIN_VIO *vio, MYSQL_SERVER_AUTH_INFO *info) { unsigned char *pkt; int pkt_len; MYSQL_PLUGIN_VIO_INFO vio_info; struct ucred cred; socklen_t cred_len= sizeof(cred); struct passwd pwd_buf, *pwd; char buf[1024]; /*   */ if (vio->write_packet(vio, (const unsigned char *) PASSWORD_QUESTION, 1)) return CR_ERROR; /*   */ if ((pkt_len= vio->read_packet(vio, &pkt)) < 0) return CR_ERROR; /*       */ info->password_used= PASSWORD_USED_NO_MENTION; /*        */ strcpy (info->authenticated_as, (const char *) pkt); vio->info(vio, &vio_info); if (vio_info.protocol != MYSQL_VIO_SOCKET) return CR_ERROR; /* get the UID of the client process */ if (getsockopt(vio_info.socket, SOL_SOCKET, SO_PEERCRED, &cred, &cred_len)) return CR_ERROR; if (cred_len != sizeof(cred)) return CR_ERROR; /* and find the username for this uid */ getpwuid_r(cred.uid, &pwd_buf, buf, sizeof(buf), &pwd); if (pwd == NULL) return CR_ERROR; /*        MySQL */ return strcmp(pwd->pw_name, info->user_name) ? CR_ERROR : CR_OK; } 

рдЖрдЧреЗ рд╣рдо рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
 cmake -DCMAKE_INSTALL_PREFIX = / opt / mysql-5.5.15 - рдпрд╣ рд╡рд╣ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдЬрд╣рд╛рдБ рд╣рдо рдбрд╛рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдк рдЕрдкрдиреА рдорд╛рдВрд╕рдкреЗрд╢рд┐рдпреЛрдВ рдХреЛ рдорд╛рд░рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
 рдореЗрдХрдЕрдк
 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддреЗ рд╣реИрдВ:
 рдкреНрд▓рдЧрдЗрди рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ_рдкреНрд▓рдЧрд┐рди_рд╕рд░реНрд╡рд░ рд╕реЛрдирдореЗ t рдСрд░реНрдЯ_рдЯреИрд╕реНрдЯ_рдкреНрд▓рдЧрд┐рди.рдПрд╕реЛ тАЩ;
 рдкреНрд▓рдЧрдЗрдиреНрд╕ рджрд┐рдЦрд╛рдПрдВ;
 + ----------------------- + -------- + ---------------- ---- + --------------------- + --------- +
 |  рдирд╛рдо |  рд╕реНрдерд┐рддрд┐ |  рдкреНрд░рдХрд╛рд░ |  рдкреБрд╕реНрддрдХрд╛рд▓рдп |  рд▓рд╛рдЗрд╕реЗрдВрд╕ |
 + ----------------------- + -------- + ---------------- ---- + --------------------- + --------- +
 ...
 |  test_plugin_server |  рд╕рдХреНрд░рд┐рдп |  AUTHENTICATION |  рдСрд░реНрдЯрд┐рдХрд▓_рдЯреЗрд╕реНрдЯ_рдкреНрд▓рдЧрд┐рди.рд╕реВ |  рдЬреАрдкреАрдПрд▓ |
 + ----------------------- + -------- + ---------------- ---- + --------------------- + --------- +
 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 'рдорд╛рдЗрдХ' @ 'рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ' рдмрдирд╛рдПрдВ;
 'test_plugin_server' рдХреЗ рд╕рд╛рде 'volki' рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдиреЗ рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ 'mcshadow' @ 'localhost' рдмрдирд╛рдПрдБ;
 'рдкреНрд░реЙрдХреНрд╕реА' @ 'рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ' рдкрд░ 'mcshadow' @ 'рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ' рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рджреЗрдирд╛;
 'рдорд╛рдЗрдХ' @ 'рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ' рдХреЛ 'рдорд╕реНрдХрдбреЛрд╡реЛ' @ 'рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ' рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рджреЗрдирд╛;
 mysql.proxies_priv рд╕реЗ * рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ;
 + ----------- + ---------- + ----------------- + -------- ------ + ------------ + ---------------- + ------------- -------- +
 |  рд╣реЛрд╕реНрдЯ |  рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ |  Proxied_host |  Proxied_user |  With_grant |  рдЕрдиреБрджрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓рд╛ |  рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк |
 + ----------- + ---------- + ----------------- + -------- ------ + ------------ + ---------------- + ------------- -------- +
 ...
 |  рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ |  Mcshadow |  рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ |  рдЬрдбрд╝ |  0 |  рд░реВрдЯ @ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ |  2011-08-17 01:15:09 |
 |  рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ |  Mcshadow |  рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ |  рдорд╛рдЗрдХ |  0 |  рд░реВрдЯ @ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ |  2011-08-17 01:30:35 |
 + ----------- + ---------- + ----------------- + -------- ------ + ------------ + ---------------- + ------------- -------- +

рд╡рд╣ рд╕рдм, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдЦрд╛рддреЗ рдореЗрдВ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдЕрднреА рднреА рдЕрдиреБрджрд╛рди рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдЖрдИрдПрдордПрдЪрдУ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рд╛рдирджрд╛рд░ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЕрдм рддрдХ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рдорд╛рдзрд╛рди рдирдо рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рднреА рдЖрдЬрдорд╛рдпрд╛, рдЙрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрд╕рдореЗрдВ рдЕрднреА рддрдХ рдкреВрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИред рдПрдХ рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдЖрдк рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рд╕реВрдЪреА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ - plugin_auth.result , рдЬреЛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, mysql-test \ r рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ ( svetasmirnova рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж), рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ GRANT PROXY рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдЕрдВрддрд░-рдиреВрд░ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ RPM рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ - рд╣рдо рдПрдХ рдФрджреНрдпреЛрдЧрд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЗрд╕ рд╕рдорд╛рдзрд╛рди (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рдмрд╛рдж) рдХреЛ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдирд┐рд░рд╛рд╢ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдЬрд╛рдиреЗрдВ! рдЕрдм рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реЛрдВ! рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ!

Source: https://habr.com/ru/post/In126519/


All Articles