mysql create user how create new user mysql
Овај водич објашњава наредбу МиСКЛ Цреате Усер са различитим механизмима ауторизације, управљањем лозинком, опцијама ограничења ресурса итд.:
Наредба МиСКЛ ЦРЕАТЕ УСЕР се користи за стварање нових корисника и одобравање детаљног приступа базама података / табелама итд.
Више људи користи инстанцу МиСКЛ сервера са различитим нивоима приступа. На пример, неки корисници имају приступ за читање одређеној бази података, слично, неки могу имати приступ за читање и писање одређеној бази података итд.
Наредбу ЦРЕАТЕ УСЕР МиСКЛ администратори чешће користе за креирање корисника за инстанце МиСКЛ сервера и додељивање различитих дозвола помоћу ГРАНТ упита.
Шта ћете научити:
Моја наредба СКЛ ЦРЕАТЕ УСЕР
Команда ЦРЕАТЕ УСЕР се користи за креирање или додавање нових налога у инстанце МиСКЛ сервера.
Овој наредби је генерално доступно / користе је МиСКЛ администратори за управљање приступом различитим корисницима инстанце МиСКЛ сервера.
Током креирања корисника помоћу наредбе ЦРЕАТЕ УСЕР можете да одредите
- Аутентификација, коју треба користити приликом повезивања на МиСКЛ.
- Ограничење ресурса
- Својства управљања лозинком: Истек лозинке, подешавања поновне употребе лозинке.
- Закључавање рачуна: Новоотворени рачуни би били закључани или откључани.
Налози се креирају у МиСКЛ системској табели под називом „Мискл.усер“
Белешка: Да би користио наредбу ЦРЕАТЕ УСЕР, корисник треба да има привилегију ЦРЕАТЕ_УСЕР или да унесе грант за МиСКЛ системска шема.
У најједноставнијем облику, синтакса наредбе ЦРЕАТЕ УСЕР је следећа:
CREATE USER (IF NOT EXISTS) '{username}'@'{hostname}' IDENTIFIED BY '{passwordString}';
Обратите пажњу на опционално АКО НЕ ПОСТОЈИ . Ово осигурава да ће, ако корисник већ постоји, резултат СКЛ упита само избацити упозорење и без грешке. Ево, 'корисничко име' односи се на стварно корисничко име са којим би се корисник повезао и „Име хоста“ односи се на хоста са којег би се корисник повезао.
Молим обратите пажњу, ако поље „име хоста“ остане празно, онда се претпоставља да је вредност за хоста „%“, што би омогућило било којем хосту да се повеже са наведеним корисничким именом.
Направите корисника са овом синтаксом:
CREATE USER 'userx'@'localhost' IDENTIFIED BY 'password';
Са горњом изјавом створили смо корисника са корисничким именом ‘усерк’ и лозинком као ‘лозинком’. Име хоста је лоцалхост јер креирамо кориснике на нашој локалној МиСКЛ инстанци.
Покушајмо да упитамо табелу мискл.усерс да бисмо видели унос за корисника којег смо креирали.
SELECT * from mysql.user
Излаз ћете видети као испод:
Прва 4 корисника су унапред креирана током саме инсталације МиСКЛ-а, док је последњи унос корисник којег смо креирали - тј. „Усерк“.
Важно је напоменути да смо у овом тренутку управо створили корисника без давања било каквих права кориснику у погледу креирања / ажурирања / постављања упита у базу података итд.
Покушајмо да се пријавимо са овим корисником помоћу МиСКЛ клијента.
Помоћу терминала можете се повезати помоћу наредбе испод:
$ /usr/local/mysql/bin/mysql -u userx -p
Када се од вас затражи лозинка, унесите је као „лозинка“.
Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 33 Server version: 8.0.20 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
Сада ћемо створити нову базу података користећи кључну реч ЦРЕАТЕ ДАТАБАСЕ.
mysql> create database student; ERROR 1044 (42000): Access denied for user 'userx'@'localhost' to database 'student'
Као што видите горе, генерисана је порука о грешци која говори да корисник „усерк“ нема приступ стварању БАЗЕ ПОДАТАКА Погледајмо друге опције које би могле да се користе са наредбом ЦРЕАТЕ УСЕР.
СТВОРИ КОРИСНИКА помоћу додатка за ауторизацију
„Аутх плуг-ин“ одређује опцију потврде идентитета и чува се у колони додатка табеле мискл.усер. МиСКЛ подржава неколико додатака за потврду идентитета.
Неки од подржаних додатака су следећи:
- МиСКЛ хеширање матичне лозинке: Хеширање матичне лозинке није ништа друго него коришћење СХА1 за чување вредности лозинки у табели мискл.усерс. Овај механизам се сматра мање сигурним од СХА1 хеширања лозинке.
- СХА2 256 хеширање лозинке: Ово је подразумевани додатак за потврду идентитета који користи МиСКЛ. тј. чак и ако ниједан додатак за потврду идентитета није наведен са наредбом ЦРЕАТЕ_УСЕР, подразумевано би се применио овај додатак.
- Спољна потврда идентитета помоћу ЛДАП-а: ЛДАП се обично користи за повезивање МиСКЛ потврде идентитета са активним директоријумом организације. На пример, аутентичност помоћу Гоогле ССО, ОАутх или Мицрософт Оутлоок ЛДАП. Ово захтева инсталацију ЛДАП додатка и на МиСКЛ страни. За више детаља можете се обратити овде.
>> Погледајте овде за комплетну листу подржаних додатака.
Покушајмо да креирамо корисника са подразумеваном додатком аутх и СХА2 аутх додатком и њиховим одговарајућим хешираним вредностима у табели мискл.усерс. Прво ћемо створити корисника са подразумеваном потврдом идентитета, која је (СХА2), и дозволите нам да видимо шта се складишти у мискл.усер сто.
CREATE USER IF NOT EXISTS 'user-default'@'localhost' IDENTIFIED BY 'P@ssw0rd'
Погледајмо додатак за потврду идентитета за овог корисника „усер-дефаулт“ у табели мискл.усерс:
SELECT host,user,plugin,authentication_string from mysql.user where user='user-default'
Овде у аутхентицатион_стринг можете видети његову СХА-256 вредност за низ лозинке - ‘П @ ссв0рд’.
Хајде сада да креирамо корисника са додатком за потврду идентитета. „МиСКЛ родна лозинка“ и погледајте колика је вредност додатка који се чува.
CREATE USER IF NOT EXISTS 'user-sha1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'P@ssw0rd'
SELECT host,user,plugin,authentication_string from mysql.user where user='user-sha1'
СТВОРИ КОРИСНИКА Улогом
МиСКЛ такође омогућава додељивање унапред дефинисаних улога новим корисницима. Ове улоге већ имају конфигурисани приступ неким или свим базама података (које се такође могу прилагодити), на пример, могла би се створити улога под називом „програмер“ којој би се могле доделити све привилегије бази података, а касније исту улогу можемо користити за додељивање нових корисника.
Да видимо ово на примеру:
- Направите улогу под називом програмер
CREATE ROLE 'developer'
- Направите базу података под називом „тест“
CREATE DATABASE test
- Доделите привилегије за тестирање базе података за улогу „програмера“
GRANT ALL ON test.* TO 'developer'
- Направите корисника и доделите му улогу програмера
CREATE USER IF NOT EXISTS 'user-with-role'@'localhost' DEFAULT ROLE developer;
- Потврдите да корисник може створити табелу у тест бази података
Покушајмо да се пријавимо са корисником под именом „усер-витх-роле“ и покушаћемо да направимо нову табелу у тест бази података.
$ /usr/local/mysql/bin/mysql -u user-with-role Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 44 Server version: 8.0.20 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> use test; Database changed mysql> create table test_table(name varchar(20)); Query OK, 0 rows affected (0.07 sec)
СТВОРИТЕ КОРИСНИКА ССЛ / ТЛС-ом
Стварање корисника са ССЛ / ТЛС опцијама захтева и клијент и сервер да имају инсталиране ССЛ сертификате. ССЛ по подразумеваној вредности није конфигурисан за МиСКЛ.
Прати их степенице за конфигурисање ССЛ-а за инстанцу МиСКЛ сервера.
Да бисте креирали корисника са омогућеним ССЛ-ом, током креирања корисника можете да користите РЕКУИРЕ ССЛ опцију.
CREATE USER 'user-with-ssl'@'localhost' REQUIRE SSL;
Слично томе, приликом креирања помоћу Кс509 очекивало би се да се клијент / корисник повеже са важећим Кс509 сертификатом.
>> Погледајте овде да бисте разумели више о Кс509.
Да бисте креирали корисника са сертификатом Кс509, користите упит у наставку:
CREATE USER 'user-with-x509'@'localhost' REQUIRE X509;
СТВОРИТЕ КОРИСНИКА помоћу опција за управљање лозинком
Опције лозинке користе се за постављање смерница за лозинку приликом креирања корисника помоћу наредбе ЦРЕАТЕ УСЕР.
# 1) Истекните лозинку приликом пријављивања. Лозинка истиче након прве употребе и тражи од корисника да је промене.
CREATE USER IF NOT EXISTS 'test'@'localhost' IDENTIFIED BY 'Password' PASSWORD EXPIRE;
#два) Истичите лозинку након одређеног интервала. Истек лозинке се може конфигурисати са конфигурисаним интервалом, на пример, 90 дана.
CREATE USER IF NOT EXISTS 'test'@'localhost' IDENTIFIED BY 'Password' PASSWORD EXPIRE INTERVAL 90 DAY;
# 3) Лозинка се закључава након конфигурисаних покушаја поновног покушаја. Пуно пута је пожељно да се кориснички налог закључа (на конфигурисани период) након „н“ нетачних покушаја поновног покушаја. У доњем упиту, кориснички налог ће се закључати на 2 дана након 5 нетачних покушаја.
CREATE USER 'test'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password' FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LOCK_TIME 2;
# 4) Нова лозинка не би требало да буде иста као конфигурисане претходне лозинке.
У доњем упиту нова лозинка коју су поставили корисници не би требало да буде иста као претходне 2 лозинке.
CREATE USER IF NOT EXISTS 'test'@'localhost' IDENTIFIED BY 'Password' PASSWORD EXPIRE PASSWORD HISTORY 2;
СТВОРИТЕ КОРИСНИКА са опцијама ограничења ресурса
Ограничења ресурса потребна су посебно за производне МиСКЛ инстанце како би се избегло да база података буде преплављена упитима / захтевима једног корисника и што би могло утицати на перформансе МиСКЛ сервера.
Ограничења ресурса можемо поставити користећи било коју од ових опција у наставку:
# 1) МАКС_КУЕРИЕС_ПЕР_ХОУР - Број дозвољених упита за датог корисника на сат.
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_QUERIES_PER_HOUR 5
Претпоставимо да ако корисник покуша да премаши више од 5 упита на сат, МиСКЛ сервер ће избацити грешку као у наставку:
ERROR 1226 (42000): User 'user-with-resource-limits' has exceeded the 'max_questions' resource (current value: 5)
# 2) МАКС_УПДАТЕС_ПЕР_ХОУР - Број упита за ажурирање дозвољен за датог корисника на сат.
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_UPDATES_PER_HOUR 50
# 3) МАКС_ЦОННЕЦТИОНС_ПЕР_ХОУР - Колико пута се рачун може повезати са сервером на сат.
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_CONNECTIONS_PER_HOUR 50
# 4) МАКС_УСЕР_ЦОННЕЦТИОНС - Број истовремених веза са инстанцом МиСКЛ сервера од датог корисника.
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_USER_CONNECTIONS 50
Имајте на уму да би се све горње опције такође могле комбиновати приликом креирања корисника. Претпоставимо ако желимо да наведемо МАКС_КУЕРИЕС као 10, а МАКС_УПДАТЕС као 100, онда можемо имати један упит ЦРЕАТЕ_УСЕР као:
CREATE USER 'user-with-resource-limits'@'localhost' WITH MAX_UPDATES_PER_HOUR 100 MAX_QUERIES_PER_HOUR 10
МиСКЛ ажурирање и брисање корисника
МиСКЛ пружа две важне команде - АЛТЕР УСЕР и ДРОП УСЕР за модификовање и брисање постојећих корисника. Хајде да разумемо оба ова примера.
АЛТЕР УСЕР
МиСКЛ АЛТЕР УСЕР се користи за ажурирање / модификовање постојећих МиСКЛ корисничких налога. Може се користити за,
- Ажурирајте ограничења ресурса
- Подесите опције лозинке
- Закључајте и откључајте рачуне итд.
Погледајмо пример коришћења АЛТЕР УСЕР за откључавање закључаног налога.
Направите корисника у закључаном стању, а затим га откључајте командом АЛТЕР УСЕР.
CREATE USER 'test'@'localhost'I DENTIFIED BY 'Password' ACCOUNT LOCK;
Сада, када се пријавимо са овим корисником, добићемо поруку о закључаном налогу (јер је корисник створен у закључаном стању налога).
$ /usr/local/mysql/bin/mysql -u test -p Enter password: ERROR 3118 (HY000): Access denied for user 'test'@'localhost'. Account is locked.
Употријебите упит у наставку за откључавање корисника наредбом АЛТЕР.
ALTER USER 'test'@'localhost' ACCOUNT UNLOCK
Пријавите се са корисником помоћу МиСКЛ клијента:
$ /usr/local/mysql/bin/mysql -u test -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 50 Server version: 8.0.20 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql>
КАПИ КОРИСНИКА
Команда МиСКЛ ДРОП УСЕР уклања једног или више постојећих корисника и све њихове повезане привилегије и грантове.
Имајте на уму да неће уклонити / избрисати податке који су уметнути / табеле креиране или ажуриране од корисника, а који се бришу.
Ако неко покуша избрисати непостојећег корисника, наредба ДРОП УСЕР ће избацити грешку.
Створимо корисника и избришимо га помоћу команде ДРОП:
CREATE USER 'test'@'localhost'; DROP USER 'test'@'localhost';
Често постављана питања
П # 1) Шта је корисник у МиСКЛ-у?
Одговор: Корисник у МиСКЛ је налог / ентитет који се може пријавити на инстанцу МиСКЛ сервера и изводити различите операције. Кориснику се може доделити приступ заснован на улогама или детаљни приступ једној или више база података и / или табела.
П # 2) Како проверити различите кориснике повезане на МиСКЛ?
Одговор: Да бисте видели активне корисничке сесије на инстанци МиСКЛ сервера, можете покренути наредбу процесслист као доле.
SHOW processlist;
Излаз ове наредбе би приказао различите атрибуте сесија активног корисника повезаних у време извршења наредбе.
Пример излаза испод:
П # 3) Како да пребацим кориснике у МиСКЛ?
Одговор: МиСКЛ ради на концепту корисничких сесија. Када сте пријављени са датим корисником, можете да планирате да прекинете сесију или отворите сесију против новог корисника у новом прозору или као нову везу у МиСКЛ ГУИ клијентима попут радног стола.
Да бисте се пријавили са одређеним корисником из мискл клијента, можете користити доњу синтаксу:
mysql -u {userName} -p
Након писања горње команде, након што притиснете Ентер, од вас ће се затражити да унесете лозинку за корисника наведеног у пољу {усерНаме}. Када се лозинка потврди, бићете пребачени у МиСКЛ љуску / командну линију.
Да бисте се пријавили са посебним корисником, можете прекинути тренутну сесију уношењем команде екит и поново се пријавити са другим корисником.
mysql> exit
Такође је могуће имати вишеструке везе са инстанцама МиСКЛ сервера за различите кориснике. Можете једноставно отворити нову картицу / прозор за командну линију и користити исту команду за пријављивање са другим корисником.
mysql -u {userName2} -p
П # 4) Како направити МиСКЛ корисника само за читање?
Одговор: МиСКЛ пружа исцрпан механизам за одобравање детаљног приступа базама података или табелама. Можете пружити различите врсте приступа као што су СЕЛЕЦТ, УПДАТЕ, ИНСЕРТ, итд. Једној или више база података или табела.
Да бисте кориснику одобрили приступ само за читање, можете одобрити СЕЛЕЦТ приступ бази података (користећи * за све табеле или изричито наводећи име табеле према захтеву)
Да схватимо ово помоћу примера у наставку:
Стварамо корисника по имену „поновни приступ“ који има лозинку као „Лозинка“
create user 'readaccess'@'localhost' IDENTIFIED BY 'Password'
Сада одобрите приступ читању свим табелама базе података под називом „тест“ помоћу кључне речи ГРАНТ у МиСКЛ
grant select on test.* to 'readaccess'@'localhost'
Сада, да бисте потврдили приступ, можете се пријавити са овим корисником под именом „поновни приступ“ и покушати да испитате табеле унутар базе података „тест“.
Међутим, ако покушате да уметнете податке у било коју табелу у тест бази података, тада ћете добити грешку у одбијању приступа, јер смо овом кориснику изричито одобрили приступ за читање.
П # 5) Како да видим кориснике у МиСКЛ-у?
Одговор: МиСКЛ има табелу на системском нивоу под називом „мискл.усер“ која садржи списак свих корисника креираних за инстанцу МиСКЛ сервера. Привилегије ове табеле су углавном ограничене на роот или административне кориснике или некога ко управља потврдом идентитета и ауторизацијом за инстанцу МиСКЛ сервера.
П # 6) Како пронаћи МиСКЛ корисничко име и лозинку?
Одговор: Мапирање корисника МиСКЛ-а и лозинке чува се у системској табели „мискл.усер“, која је табела са ограниченим приступом. Лозинка се чува у шифрованом формату, у зависности од режима шифровања који је изабран током креирања корисника.
Међутим, ако је нечији налог закључан, МиСКЛ пружа другу наредбу под називом АЛТЕР УСЕР, која се може користити за откључавање датог корисничког налога.
јава интервју програми и одговори за искусне
Закључак
У овом упутству смо сазнали о наредби МиСКЛ ЦРЕАТЕ УСЕР, коју администратори базе података користе за потврду идентитета и управљање приступом.
МиСКЛ пружа мноштво моћних механизама за потврду идентитета и додељивања заснованих на улогама који омогућавају стварање нових корисника са унапред дефинисаним дозволама за приступ. Такође смо видели примере за стварање корисника са различитим механизмима ауторизације, различитим подешавањима лозинке, опцијама истека итд.
Препоручено читање
- Како преузети МиСКЛ за Виндовс и Мац
- МиСКЛ Водич за креирање погледа са примерима кода
- МиСКЛ Водич за креирање табела са примерима
- 31 Најпопуларнија испитивања базе података Интервју питања и одговори
- Водич за нормализацију базе података: Примери 1НФ 2НФ 3НФ БЦНФ
- Комплетан водич за тестирање базе података (Зашто, шта и како тестирати податке)
- МонгоДБ Направите резервну копију базе података
- МонгоДБ Стварање корисника и додељивање улога са примерима