Įveskite tą patį vartotojo vardą dviem skirtingais keliais ir MariaDB gali autentifikuoti jus kaip dvi skirtingas paskyras. Paskyros rišamos prie vartotojo ir hosto kartu, todėl 'reporter'@'localhost' ir 'reporter'@'10.90.0.23' yra atskiros eilutės su atskirais slaptažodžiais ir atskiromis teisėmis. Per VPN įdomus klausimas yra ne tai, kokį vardą įvedė vartotojas, o tai, kurį šaltinio adresą serveris matė.

Nustatykite šaltinį, kurį serveris iš tikrųjų mato

Dirbkite atgal nuo duomenų bazės hosto, o ne nuo nešiojamojo kompiuterio. Adresas, kurį klientas mano turįs, yra tik viena iš kelių galimybių:

PathSource MariaDB sees
Routed tunnel, no translationThe client's inner VPN address
Gateway source translationThe gateway's translated address
SSH local forwardThe SSH server's address
Public exit, no tunnelWhatever the ISP handed out

Naudokite serverio pusės įrodymus, kad tai išspręstumėte. Ryšių žurnalas, aktyvių sesijų sąrašas ar laikinas įrašas bendrame žurnale rodo adresą, kurį serveris priėmė. Nešiojamojo kompiuterio viešasis IP iš naršyklės yra kitas faktas ir dažnai klaidinantis.

Suderinkite paskyrą, kurią pasirinko MariaDB

Paskyros pasirinkimas vadovaujasi dokumentuota tvarka, o ne teisių junginiu. Tikslus hosto sutapimas turi pirmenybę prieš pakaitos simbolį, o anoniminio vartotojo eilutės dalyvauja suderinime taip, kad nustebina tuos, kurie mano, kad sprendžia vien vardas. Serveris pasirenka vieną eilutę; jis nesujungia visų to paties pavadinimo eilučių privilegijų. Vieną kartą perskaityti dokumentaciją verta daugiau nei pusiaudienį bandyti spėjimus.

Tai reiškia, kad teisės pridėjimas prie 'reporter'@'%' gali nieko nepakeisti, jei sesija autentifikavosi kaip 'reporter'@'10.90.0.23'. Pataisa turi patekti į tą eilutę, kuri buvo pasirinkta, todėl paskyros identifikavimas eina prieš teisių redagavimą.

Perskaitykite paskyrą, kurią sesija iš tikrųjų naudoja

SELECT USER(), CURRENT_USER();
SHOW GRANTS;

CURRENT_USER() nurodo paskyrą, kuri autentifikavo sesiją; USER() praneša, ko paprašė klientas, ir gali skirtis. Vykdykite juos kaip įprastus viršutinio lygio užklausimus, o ne iš saugomos rutinos su apibrėžėjo kontekstu, kitaip atsakymai apibūdins rutinos savininką, o ne jūsų sesiją.

Nepavykęs prisijungimas negali įvykdyti nieko iš to, ir tai yra atvejis, kai administratorius turi patikrinti paskyrų apibrėžimus ir serverio ryšio įrodymus. Planuokite tai: asmuo, derinantis atmestą prisijungimą, paprastai neturi SQL sesijos, kurioje galėtų užklausti.

Atskirkite pasiekiamumą nuo autentifikavimo

Klaidos tekstas pasako, kuriame sluoksnyje esate. Atmestas ryšys arba skirtasis laikas reiškia, kad klientas niekada nepasiekė klausytojo, todėl paskyra ir jos slaptažodis dar nekvestinuojami. Atsakymas apie uždraustą prieigą reiškia, kad serveris atsakė, o tai įrodo pasiekiamumą ir nurodo paskyrą, hosto sutapimą arba prisijungimo duomenis.

Tinklo prielaidos yra atskiras sąrašas: klausytojas, susietas su numatytu adresu, o ne tik su loopback, leidžiamas srautas į sukonfigūruotą prievadą ir grįžtamasis maršrutas atsakymui. Kiekvienas gali nepavykti savarankiškai, o veikiantis tunelis nereiškia nė vieno iš jų. Loopback klausytojas priima vietinius ryšius ir atmeta kiekvieną nuotolinį, todėl susidaro atmestas ryšys, kuris atrodo kaip ugniasienės blokavimas.

Patikrinkite susiejimo adresą prieš atidarydami užklausą tinklo komandai. ss -lntp duomenų bazės hoste parodo, kuris adresas ir prievadas iš tikrųjų klausosi, ir ta viena eilutė pašalina visą spėjimų kategoriją.

Taisykite siaurai, tada išbandykite abi kryptis

Sukurkite numatytą hosto kvalifikuotą paskyrą per organizacijos patvirtintą procesą, su prisijungimo duomenimis iš palaikomos saugyklos, o ne bendrais, įklijuotais į užklausą. Suteikite tik tas schemos operacijas, kurių reikia užduočiai. Nepavykusio nuotolinio prisijungimo pavertimas root paskyra, viską-leisti politika ar bendru pakaitos hostu leidžia testui praeiti ir pašalina kontrolę, kurią tikrinote. Skubiai pridėta teisė yra ta, kurios vėliau niekas nepašalina.

Išbandykite iš naujo su nauja sesija numatytu keliu, tada patikrinkite neigiamus atvejus. Kelias, kuris turėtų būti užblokuotas, turi likti užblokuotas, o operacija, kuri nebuvo suteikta, turi likti atmesta. Šie du patikrinimai atskiria sutaisytą paskyrą nuo išplėstos.

Galiausiai užrašykite stebėtą šaltinio adresą ir paskyros pavadinimą kartu. Tunelis suteikia pasiekiamumą; MariaDB vis tiek pasirenka ir autorizuoja savo paskyrą, o kitam žmogui reikia abiejų faktų, kad atkurtų jūsų rezultatą.

Susiję straipsniai