VPN арқылы MariaDB: сервер қай user@host-ты көреді?
Аккаунт пайдаланушы мен хост бірге бойынша таңдалады. Сервер көрген көзді табыңыз, CURRENT_USER() оқыңыз, содан кейін сол жолды түзетіңіз, рұқсатты емес.
Бір пайдаланушы атын екі түрлі жолдан енгізіңіз, және MariaDB сізді екі түрлі аккаунт ретінде аутентификациялауы мүмкін. Аккаунттар пайдаланушы мен хост бірге бойынша құрылады, сондықтан 'reporter'@'localhost' және 'reporter'@'10.90.0.23' бөлек құпия сөздері мен бөлек рұқсаттары бар бөлек жолдар. VPN арқылы қызықты сұрақ пайдаланушы қандай ат енгізгені емес, сервер қандай көз мекенжайын көргені.
Сервер шын мәнінде көретін көзді анықтаңыз
Дерекқор хостынан кері қарай жұмыс істеңіз, ноутбуктен емес. Клиент өзінде бар деп ойлайтын мекенжай бірнеше мүмкіндіктің тек біреуі:
| Path | Source MariaDB sees |
|---|---|
| Routed tunnel, no translation | The client's inner VPN address |
| Gateway source translation | The gateway's translated address |
| SSH local forward | The SSH server's address |
| Public exit, no tunnel | Whatever the ISP handed out |
Шешу үшін сервер жағындағы дәлелдерді пайдаланыңыз. Қосылым журналы, белсенді сессиялар тізімі немесе жалпы журналдағы уақытша жазба сервер қабылдаған мекенжайды көрсетеді. Ноутбуктің браузерден көрінетін жария IP-і басқа факт және жиі адастырады.
MariaDB таңдаған аккаунтты сәйкестендіріңіз
Аккаунт таңдау рұқсаттардың бірігуіне емес, құжатталған тәртіпке бағынады. Хосттың дәл сәйкестігі үлгі белгісінен басым, ал анонимді пайдаланушы жолдары сәйкестендіруге тек ат шешетін деп ойлайтындарды таңқалдыратын тәсілдермен қатысады. Сервер бір жолды таңдайды; ол аттас әр жолдың артықшылықтарын біріктірмейді. Анықтаманы бір рет оқу жарты күн болжам сынаудан қымбат.
Бұл 'reporter'@'%'-ке рұқсат қосу сессия 'reporter'@'10.90.0.23' ретінде аутентификацияланса, ештеңе өзгертпеуі мүмкін дегенді білдіреді. Түзету таңдалған жолға түсуі керек, сондықтан аккаунтты анықтау рұқсаттарды өңдеуден бұрын келеді.
Сессия шын мәнінде пайдаланатын аккаунтты оқыңыз
SELECT USER(), CURRENT_USER();
SHOW GRANTS;
CURRENT_USER() сессияны аутентификациялаған аккаунтты атайды; USER() клиент сұраған нәрсені хабарлайды және өзгеше болуы мүмкін. Оларды қарапайым жоғарғы деңгейлі сұраулар ретінде орындаңыз, анықтаушы контексті бар сақталған процедураның ішінен емес, әйтпесе жауаптар сессияңыздың орнына процедура иесін сипаттайды.
Сәтсіз кіру осының ешқайсысын орындай алмайды, және бұл әкімші аккаунт анықтамалары мен сервердің қосылым дәлелдерін тексеруі керек жағдай. Оған дайындалыңыз: қабылданбаған кіруді жөндейтін адамда әдетте сұрау үшін SQL сессиясы болмайды.
Қолжетімділікті аутентификациядан бөліңіз
Қате мәтіні қай қабатта екеніңізді айтады. Қабылданбаған қосылым немесе уақыт бітуі клиент тыңдаушыға ешқашан жетпегенін білдіреді, сондықтан аккаунт пен оның құпия сөзі әзірге сұраққа түспейді. Рұқсаттан бас тартылды жауабы сервер жауап бергенін білдіреді, бұл қолжетімділікті дәлелдейді және аккаунтқа, хост сәйкестігіне немесе тіркелгі деректеріне нұсқайды.
Желі алғышарттары өз тізімі: тек loopback-ке емес, мақсатты мекенжайға байланған тыңдаушы, конфигурацияланған портқа рұқсат етілген трафик және жауап үшін қайтару бағыты. Әрқайсысы дербес сәтсіз болуы мүмкін, ал жұмыс істейтін туннель олардың ешқайсысын білдірмейді. loopback-тегі тыңдаушы жергілікті қосылымдарды қабылдап, әр қашықтағыны қабылдамайды, бұл өрт қабырғасының блогына ұқсайтын қабылданбаған қосылымды тудырады.
Желі тобына билет ашпас бұрын байлау мекенжайын тексеріңіз. Дерекқор хосттындағы ss -lntp қай мекенжай мен порттың шын мәнінде тыңдап жатқанын көрсетеді, және сол бір жол болжамдардың бүкіл санатын жояды.
Тар түзетіңіз, содан кейін екі бағытта да қайта сынаңыз
Мақсатты хост-білікті аккаунтты ұйымның бекітілген процесі арқылы жасаңыз, қолдау көрсетілетін қоймадан тіркелгі деректерімен, билетке жапсырылған ортақ деректермен емес. Тек тапсырмаға қажет схема операцияларын беріңіз. Сәтсіз қашықтағы кіруді root аккаунтына, бәрін-бер саясатына немесе жалпы үлгі хостына айналдыру тестіден өткізеді және сіз сынаған бақылауды жояды. Асығыс қосқан рұқсат кейін ешкім жоймайтын рұқсат.
Мақсатты жолмен жаңа сессиямен қайта сынаңыз, содан кейін теріс жағдайларды тексеріңіз. Бұғатталуы тиіс жол әлі де бұғатталуы керек, ал берілмеген операция әлі де қабылданбауы керек. Осы екі тексеру түзетілген аккаунтты кеңейтілгеннен ажыратады.
Соңында, байқалған көз мекенжайы мен аккаунт атын бірге жазып алыңыз. Туннель қолжетімділікті қамтамасыз етеді; MariaDB әлі де өз аккаунтын таңдап, рұқсат береді, ал келесі адамға сіздің нәтижеңізді қайталау үшін екі факт те қажет.