Do not speak Portuguese? Translate this site with Google or Bing Translator
Como criar um novo usuário e conceder permissões no MariaDB

Posted on: October 16, 2023 08:31 PM

Posted by: Renato

Categories: mysql mariadb database

Views: 672

Como criar um novo usuário e conceder permissões no MariaDB e MySQL

 
Neste tutorial, saiba como criar um usuário e conceder permissões no MariaDB e MySQL. O MariaDB e MySQL são sistemas de gerenciamento de banco de dados (SGBD), que possuem uma variedade de opções para conceder a usuários específicos permissões diferenciadas em tabelas e bases de dados. Este artigo vai lhe dar um breve resumo de algumas das muitas opções que eles oferecem.
 
Mas, também temos um tutorial para instalar Nginx, MariaDB e PHP 8.1, LEMP stack, no Ubuntu 22.04 LTS Jammy Jellyfish.
 
Como criar um Novo Usuário no MariaDB ou MySQL no Linux
 
Vamos fazer toda a edição no MariaDB ou MySQL como usuário root, já que ele tem acesso total a todos os bancos de dados e tabelas dentro desses bancos de dados. Os comandos a seguir funcionam tanto no MariaDB como no MySQL.
 
```sh
sudo mysql -u root -p
```
 
Vamos começar criando um usuário:
 
```
CREATE USER 'novousuario'@'localhost' IDENTIFIED BY 'minhasenha';
```
 
Infelizmente, nesse momento o “novousuario” não tem permissão para fazer nada com as bases de dados. Na verdade, se o “novousuario” tentar fazer login (com a senha “minhasenha”), ele não conseguirá chegar ao shell do MySQL ou do MariaDB.
 
Portanto, a primeira coisa a fazer é fornecer ao usuário o acesso às informações que ele vai precisar, com o seguinte comando:
 
```
GRANT ALL PRIVILEGES ON * . * TO 'novousuario'@'localhost';
```
 
Os asteriscos neste comando referem-se ao banco de dados e à tabela respectivamente que eles podem acessar. Este comando permite ao usuário ler, editar, executar e realizar todas as tarefas em todas as bases de dados e tabelas, tendo assim as mesmas permissões de acesso que o usuário root.
 
Feito isso, vamos recarregar as permissões do nosso banco de dados com esse comando:
 
```
FLUSH PRIVILEGES;
```
 
Como conceder permissões específicas para usuários no MariaDB ou MySQL
 
Não é muito inteligente conceder acesso de nível de root a um usuário como a gente fez acima. Imagine que você precisa dar acesso ao banco de dados para uma pessoa que precisa ver as tabelas. Ao conceder acesso à nível de root para essa pessoa, ela pode alterar algum dado de alguma tabela, excluir ou fazer alguma coisa pior. Então, é melhor você criar um usuário e especificar as permissões que ele tem acesso, assim você tem mais controle de quem pode acessar o seu banco de dados e o que vai acessar.
 
A sintaxe do comando que concede privilégios é essa:
 
GRANT tipo-de-permissão ON nome-da-base-de-dados . nome-da-tabela TO 'nome-do-usuário'@'localhost';
 
Aqui está uma pequena lista de outras possíveis permissões que os usuários podem utilizar, você pode ver a lista completa aqui.
 
ALL PRIVILEGES- como vimos anteriormente, isso daria a um usuário do MySQL todo o acesso a uma determinada base de dados (ou se nenhuma base de dados for selecionada, todo o sistema)
 
```sh
CREATE- permite criar novas tabelas ou bases de dados
DROP- permite deletar tableas ou bases de dados
DELETE- permite deletar linhas das tabelas
INSERT- permite inserir linhas nas tabelas
SELECT- permite utilizar o comando Select para ler bases de dados
UPDATE- permite atualizar linhas das tabelas
GRANT OPTION- permite conceder ou revogar privilégios de outros usuários
```
 
Para aplicar mais de uma permissão a um usuário é só separar com uma vírgula. Por exemplo, vamos atribuir a um determinado usuário a permissão de UPDATE e DELETE:
 
```
GRANT UPDATE, DELETE ON * . * TO 'nome-do-usuario'@'localhost';
```
 
Cada vez que você atualizar ou mudar uma permissão certifique-se de utilizar o comando FLUSH PRIVILEGES
Remover uma permissão do MariaDB ou MySQL
 
Se você precisar revogar uma permissão, a estrutura é quase idêntica a concedê-la:
 
REVOKE tipo-de-permissão ON nome-da-base-de-dados . nome-da-tabela FROM 'nome-do-usuário'@'localhost';
 
Vamos remover a permissão de UPDATE de um usuário. Exemplo:
 
```
REVOQUE UPDATE ON *. * FROM 'nome-do-usuario' @ 'localhost';
```
 
Excluir um usuário
 
Assim como você pode deletar bases de dados com o DROP, você pode utilizar o DROP para excluir um usuário:
 
DROP USER 'nome-do-usuario'@'localhost';
 
Testando o novo usuário
 
Para testar seu novo usuário, faça logout digitando:
 
`quit`
 
E faça login de novamente com este comando:
 
```sh
mysql -u nome-do-usuário -p
```
 
Feito!

3

Share

Donate to Site


About Author

Renato

Developer

Add a Comment

Blog Search


Categories

OUTROS (16) Variados (109) PHP (133) Laravel (171) Black Hat (3) front-end (29) linux (114) postgresql (39) Docker (28) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (56) devops (25) nodejs (5) npm (3) nvm (1) git (8) firefox (1) react (7) reactnative (5) collections (1) javascript (7) reactjs (8) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (2) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (12) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (5) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (3) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (43) Kubernetes (3) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (2) jwt (5) security (2) translate (1) kube (2) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (3) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (3) Architecture (4) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (2) autorizacao (2) authentication (4) authorization (3) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1) KubeCon (1) GitOps (1) Axios (1) Fetch (1) Deepin (1) vue (4) nuxt (1) PKCE (1) Oauth2 (2) webhook (1) TypeScript (1) tailwind (1) gource (2)

New Articles



Get Latest Updates by Email