Tajpu la saman uzantnomon el du malsamaj vojoj kaj MariaDB povas aŭtentigi vin kiel du malsamajn kontojn. Kontoj estas ŝlositaj laŭ uzanto kaj gastiganto kune, do 'reporter'@'localhost' kaj 'reporter'@'10.90.0.23' estas apartaj vicoj kun apartaj pasvortoj kaj apartaj permesoj. Tra VPN, la interesa demando ne estas, kiun nomon la uzanto tajpis, sed kiun fontan adreson la servilo vidis.

Determinu la fonton, kiun la servilo efektive vidas

Laboru malantaŭen de la datumbaza gastiganto, ne de la tekkomputilo. La adreso, kiun la kliento kredas havi, estas nur unu el pluraj ebloj:

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

Uzu servilflankajn pruvojn por decidi tion. Konekta protokolo, listo de aktivaj sesioj aŭ provizora enskribo en la ĝenerala protokolo montras la adreson, kiun la servilo akceptis. La publika IP de la tekkomputilo el retumilo estas alia fakto kaj ofte misgvida.

Parigu la konton, kiun MariaDB elektis

Konta elekto sekvas dokumentitan ordon, ne union de permesoj. Ekzakta gastiganta kongruo havas prioritaton super ĵokera signo, kaj vicoj de anonima uzanto partoprenas en kongruo laŭ manieroj, kiuj surprizas homojn, kiuj supozas, ke la nomo sola decidas. La servilo elektas unu vicon; ĝi ne kunfandas la privilegiojn de ĉiu samnoma vico. Legi la referencon unufoje valoras pli ol posttagmezo da divenoj.

Tio signifas, ke aldoni permeson al 'reporter'@'%' eble tute ne ŝanĝas ion, se la sesio aŭtentiĝis kiel 'reporter'@'10.90.0.23'. La ripeto devas surteriĝi sur la vico, kiu estis elektita, tial identigi la konton venas antaŭ redakti permesojn.

Legu la konton, kiun la sesio efektive uzas

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

CURRENT_USER() nomas la konton, kiu aŭtentigis la sesion; USER() raportas, kion la kliento petis, kaj povas malsami. Rulu ilin kiel ordinarajn plejaltnivelajn demandojn, ne el konservita rutino kun difina kunteksto, alie la respondoj priskribas la posedanton de la rutino anstataŭ vian sesion.

Malsukcesa ensaluto povas ruli neniom el tio, kaj tio estas la kazo, kiam administranto devas anstataŭe inspekti la kontajn difinojn kaj la konektajn pruvojn de la servilo. Planu por tio: la persono, kiu sencimigas rifuzitan ensaluton, kutime havas neniun SQL-sesion por demandi.

Apartigu atingeblon de aŭtentigo

La erarteksto diras al vi, en kiu tavolo vi estas. Rifuzita konekto aŭ tempolimo signifas, ke la kliento neniam atingis aŭskultanton, do la konto kaj ĝia pasvorto ankoraŭ ne estas pridubataj. Respondo pri rifuzita aliro signifas, ke la servilo respondis, kio pruvas atingeblon kaj montras al la konto, la gastiganta kongruo aŭ la legitimilo.

Retaj antaŭkondiĉoj estas propra listo: aŭskultanto ligita al la celata adreso kaj ne nur al loopback, permesita trafiko al la agordita pordo kaj revena vojo por la respondo. Ĉiu povas malsukcesi sendepende, kaj funkcianta tunelo implicas neniun el ili. Aŭskultanto sur loopback akceptas lokajn konektojn kaj rifuzas ĉiun malproksiman, kio produktas rifuzitan konekton, kiu aspektas kiel fajroŝirma blokado.

Kontrolu la bind-adreson antaŭ ol malfermi bileton ĉe la reta teamo. ss -lntp sur la datumbaza gastiganto montras, kiu adreso kaj pordo efektive aŭskultas, kaj tiu sola linio ekskludas tutan kategorion da divenoj.

Riparu mallarĝe, poste retestu ambaŭ direktojn

Kreu la celatan konton kvalifikitan per gastiganto per la aprobita procezo de la organizo, kun legitimilo el la subtenata stokejo anstataŭ komuna, enmetita en bileton. Donu nur la skemajn operaciojn, kiujn la tasko bezonas. Turni malsukcesan malproksiman ensaluton en root-konton, ĉion-permesan politikon aŭ ĝeneralan ĵokeran gastiganton igas la teston pasi kaj forigas la kontrolon, kiun vi testis. La permeso, kiun vi aldonis haste, estas tiu, kiun neniu forigas poste.

Retestu per freŝa sesio tra la celata vojo, poste kontrolu la negativajn kazojn. Vojo, kiu devus esti blokita, devas resti blokita, kaj operacio, kiu ne estis permesita, devas resti malpermesita. Tiuj du kontroloj estas tio, kio apartigas riparitan konton de vastigita.

Fine, registru la observitan fontan adreson kaj la kontan nomon kune. La tunelo provizas atingeblon; MariaDB ankoraŭ elektas kaj rajtigas sian propran konton, kaj la sekva persono bezonas ambaŭ faktojn por reprodukti vian rezulton.

Rilataj artikoloj