mysql怎么给数据库添加权限

mysql怎么给数据库添加权限,第1张

可以用phpMyAdmin通过输入语句的方法建立用户,或者一般的图形界面的SQL管理程序也可以建立和编辑用户

这里只说使用GRANT语句的方法,当然还有直接修改MySQL表的方法,不过很麻烦,用的人不多~

前提是有MySQL root权限

例子:建立另一个超级用户(所有权限)的方法

GRANT ALL ON TO username@localhost IDENTIFIED BY 'password' WITH GRANT OPTION

localhost是主机名,也可以是IP,用于限定这个用户是否可以远程连接还可以用通配符"%",比如%im286com,或者20297224%

中第一个星星是数据库名(为所有数据库),第二个星星是表名(为前面数据库下的所有表)

ALL 是指全部语句的 *** 作权限(经常看到虚拟主机等的用户没有DROP权限,就是这里做了手脚)

语法大概就是这样吧

1、创建新用户

通过root用户登录之后创建

>> grant all privileges on to testuser@localhost identified by "123456" ;//创建新用户,用户名为testuser,密码为123456 ;

>> grant all privileges on to testuser@localhost identified by "123456" ;//设置用户testuser,可以在本地访问mysql

>> grant all privileges on to testuser@"%" identified by "123456" ; //设置用户testuser,可以在远程访问mysql

>> flush privileges ;//mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效

2、设置用户访问数据库权限

>> grant all privileges on test_db to testuser@localhost identified by "123456" ;//设置用户testuser,只能访问数据库test_db,其他数据库均不能访问 ;

>> grant all privileges on to testuser@localhost identified by "123456" ;//设置用户testuser,可以访问mysql上的所有数据库 ;

>> grant all privileges on test_dbuser_infor to testuser@localhost identified by "123456" ;//设置用户testuser,只能访问数据库test_db的表user_infor,数据库中的其他表均不能访问 ;

3、设置用户 *** 作权限

>> grant all privileges on to testuser@localhost identified by "123456" WITH GRANT OPTION ;//设置用户testuser,拥有所有的 *** 作权限,也就是管理员 ;

>> grant select on to testuser@localhost identified by "123456" WITH GRANT OPTION ;//设置用户testuser,只拥有查询 *** 作权限 ;

>> grant select,insert on to testuser@localhost identified by "123456" ;//设置用户testuser,只拥有查询\插入 *** 作权限 ;

>> grant select,insert,update,delete on to testuser@localhost identified by "123456" ;//设置用户testuser,只拥有查询\插入 *** 作权限 ;

>> REVOKE select,insert ON what FROM testuser//取消用户testuser的查询\插入 *** 作权限 ;

MySQL命令行能否实现新建用户呢?答案无疑是肯定的。而且在使用使用MySQL命令行新建用户后,还可以为用户授予权限。

首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。

注:本 *** 作是在WIN命令提示符下,phpMyAdmin同样适用。

用户:phplamp

用户数据库:phplampDB

1MySQL命令行新建用户

//登录MYSQL

@>mysql -u root -p

@>密码

//创建用户

mysql> insert into mysqluser(Host,User,Password) values('localhost','phplamp',password('1234'));

//刷新系统权限表

mysql>flush privileges;

这样就创建了一个名为:phplamp 密码为:1234 的用户。

//退出后登录一下

mysql>exit;

@>mysql -u phplamp -p

@>输入密码

mysql>登录成功

2MySQL命令行为用户授权

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录

@>mysql -u root -p

@>密码

//首先为用户创建一个数据库(phplampDB)

mysql>create database phplampDB;

//授权phplamp用户拥有phplamp数据库的所有权限

@>grant all privileges on phplampDB to phplamp@localhost identified by '1234'; //这里需要注意,如果发现找不到用户,需要执行命令 flush privilieges;

//刷新系统权限表

mysql>flush privileges;

mysql>其它 *** 作

//如果想指定部分权限给一用户,可以这样来写:

mysql>grant select,update on phplampDB to phplamp@localhost identified by '1234';

//刷新系统权限表。

mysql>flush privileges;

mysql> grant 权限1,权限2,…权限n on 数据库名称表名称 to 用户名@用户地址 identified by ‘连接口令’;

权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。

当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。

当数据库名称表名称被代替,表示赋予用户 *** 作服务器上所有数据库所有表的权限。

用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。

‘连接口令’不能为空,否则创建失败。

例如:

mysql>grant select,insert,update,delete,create,drop on vtdcemployee to joe@1016322587 identified by ‘123′;

给来自1016322587的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等 *** 作的权限,并设定口令为123。

mysql>grant all privileges on vtdc to joe@1016322587 identified by ‘123′;

给来自1016322587的用户joe分配可对数据库vtdc所有表进行所有 *** 作的权限,并设定口令为123。

mysql>grant all privileges on to joe@1016322587 identified by ‘123′;

给来自1016322587的用户joe分配可对所有数据库的所有表进行所有 *** 作的权限,并设定口令为123。

mysql>grant all privileges on to joe@localhost identified by ‘123′;

给本机用户joe分配可对所有数据库的所有表进行所有 *** 作的权限,并设定口令为123。

用ROOT账户登陆(有权限对整个数据库 *** 作的账户)点权限设置,然后添加一用户 。在Database for user 那里选择Create database with same name and grant all privileges 如果只是想指定它对其中一数据库有管理权限就不要选择全局权限中的任何一项 ,点执行 完成创建 ,下面就是新建一数据库,在点权限设置 ,在“按数据库指定权限”那里把你刚新建的数据库选择上,点执行就可以了!这样你新建的账户只对该数据库有完全控制的权限,对其他用户也没访问权限!

sybase数据库

的用户,包含两个层面:一个是登陆号,另一个是具体DB的用户,我们登陆时,使用的是登录号,但是这个登录号可以 *** 作哪些DB及 *** 作权限则取决于数据库用户。一般情况下,我们可以采取相同的名字来表示登录号和数据库用户。

首先创建一个登陆号:

sp_addlogin

loginame,

passwd

loginame

登录名

passwd

密码

全部语法(一般不用到)为:

sp_addlogin

loginame,

passwd

[,

defdb]

[,

deflanguage

]

[,

fullname

]

[,

passwdexp

]

[,

minpwdlen

]

[,

maxfailedlogins

]

然后创建用户:

sp_adduser

loginame

这样创建当前数据库的用户,且用户名和登陆名是一样的。

全部语法为:

[dbname]sp_adduser

loginame

[,

username[,

grpname]]

最后分配权限:

grant

all

|

select,insert,delete,update

on

table_name

|

view_name

|

stored_

procedure

_name

to

username

grant

all

|

create

database,create

default,create

procedure,create

rule,create

table,create

view,set

proxy,set

session

authorization

to

username

例,假如当前DB为:DB001:

sp_addlogin

'test001','password001'

go

sp_adduser

'test001',

'user001'

go

grant

create

table

to

user001

go

创建了一个test001的登录名,之后为之创建一个当前数据库的用户,使这个登录名可以 *** 作当前数据库。之后分配了创建表的权限给user001。

这个时候你就可以使用用户名'test001'和密码'password001'登陆了,并且可以在DB001中创建表了。同时由于sp_adduser

的时候没有指定grpname参数,那么默认是public

用户组

,这个组里的用户默认即开通了select/delete/update/insert的权限。

如果你希望去掉一些权限,请使用revoke命令,其语法了grant完全相同,你只需要将grant换成revoke即可,例:

revoke

select

on

address

to

user001

禁止user001查看address表。

1使用navicat

1)首先使用root用户新建连接

2)新建MySQL用户

3)点击权限,选择添加权限,出现MySQL中已存在的数据库列表,选择你要为该新建用户开放的数据库,此处选择“maibao”数据库,选择一些必要的权限信息(我这里进行了全部权限选择),确定

以上就是关于mysql怎么给数据库添加权限全部的内容,包括:mysql怎么给数据库添加权限、如何设置mysql用户的权限、mysql怎么授予创建数据库的权限等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10127746.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存