数据库授权语句
下面的例子显示如敏稿何使用MySQL客户安装新用户 这些例子假定权限已缺省被安装 这意味着为了改变 你必须在MySQL正在运行同一台机器上 你必须作为MySQL root用户连接 并且root用户必须对MySQL数据库有insert权限和reload管理权限 另外 如果你改变了root用户口令 你必须如下的MySQL命令指定它
你可以通过发出GRANT语句增加新用户
shell> mysql user=root mysql mysql> GRANT ALL PRIVILEGES ON * * TO monty@localhost IDENTIFIED BY something WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON * * TO monty@ % IDENTIFIED BY something WITH GRANT OPTION; mysql> GRANT RELOAD PROCESS ON * * TO admin@localhost; mysql> GRANT USAGE ON * * TO mmy@localhost;
这些GRANT语句安装 个新用户
monty 可以从任何地方连接服务器的一个完全的超级用户 但是必须使用一个口令( something 做这个 注意 我们必须对 monty@localhost和monty@ % 发出GRANT语句 如果我们增加localhost条目 对localhost的匿名用户条目在我 们从本地主机连接接时由mysql_install_db创建的条目将优先考虑 因为它有更特定的Host字段值 所以以user表排列顺序看更早到来
admin 可以从localhost没有一个口令进行连接并且被授予reload和process管理权限的用户 这允许用户执行mysqladmin reload mysqladmin refresh和mysqladmin flush *命令 还有mysqladmin processlist 没有授予数据库有关的权限 他们能在以后通过发出另一个GRANT语句授权
mmy 可以不用一个口令连接的一个用户 但是只能从本地主机 全局权限被设置为 N USAGE权限类型允许你无需权限就可设置一个用户 它假定你将在以后授予数据库相关的权限
链拿猛你也可以直接通过发出INSERT语句增加同样的用户存取信息 然后告诉服务棚桥器再次装入授权表
shell> mysql user=root mysql mysql> INSERT INTO user VALUES( localhost monty PASSWORD( something ) Y Y Y Y Y Y Y Y Y Y Y Y Y Y ) mysql> INSERT INTO user VALUES( % monty PASSWORD( something ) Y Y Y Y Y Y Y Y Y Y Y Y Y Y ) mysql> INSERT INTO user SET Host= localhost User= admin Reload_priv= Y Process_priv= Y ; mysql> INSERT INTO user (Host User Password) VALUES( localhost mmy ); mysql> FLUSH PRIVILEGES;
取决于你的MySQL版本 对上述 你可能必须使用一个不同数目 Y 值(在 以前的版本有更少的权限列) 对admin用户 只用在 开始的版本具有的更加可读的INSERT扩充的语法
注意 为了设置一个超级用户 你只需创造一个user表条目 其权限字段设为 Y 不需要db或host表的条目
在user表中的权限列不是由最后一个INSERT语句明确设置的(对mmy用户) 因此那些列被赋予缺省值 N 这是GRANT USAGE做的同样的事情
下列例子增加一个用户custom 他能从主机localhost server domain和whitehouse gov连接 他只想要从 localhost存取bankaccount数据库 从whitehouse gov存取expenses数据库和从所有 台主机存取customer 数据库 他想要从所有 台主机上使用口令stupid
为了使用GRANT语句设置个用户的权限 运行这些命令
shell> mysql user=root mysql mysql> GRANT SELECT INSERT UPDATE DELETE CREATE DROP ON bankaccount * TO custom@localhost IDENTIFIED BY stupid ; mysql> GRANT SELECT INSERT UPDATE DELETE CREATE DROP ON expenses * TO custom@whitehouse gov IDENTIFIED BY stupid ; mysql> GRANT SELECT INSERT UPDATE DELETE CREATE DROP ON customer * TO custom@ % IDENTIFIED BY stupid ;
通过直接修改授权表设置用户权限 运行这些命令(注意 在结束时FLUSH PRIVILEGES)
lishixin/Article/program/MySQL/201311/29628
㈡ 数据库SQL语言怎么授权
SQL语言用GRANT语句向用户授予操作权限,GRANT语句的一般格式为:
GRANT <权限>[,<权限>]...
[ON <对象类型> <对象名>]
TO <用户>[,<用户>]...
[WITH GRANT OPTION];
其语义为:将对指定操作对象的指定操作权限授予指定的用户。
不同类型的操作对象有不同的操作权限,常见的操作权限如表3-4所示。
表3-4 不同对象类型允许的操作权限
对象 对象类型 操作权限
属性列 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES
视图 TABLE SELECT, INSERT, UPDATE, DELETE ALL PRIVIEGES
基本表 TABLE SELECT, INSERT, UPDATE, ALTER, INDEX,DELETE ALL PRIVIEGES
数据库 DATABASE CREATETAB
详细信息…
接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC即全体用户。
如果指定了WITH GRANT OPTION子句,则获得某种权限的用户还可以把这种权限再授予别的用户。如果没有指定WITH GRANT OPTION子句,则获得某种权限的用户只能使用该权限,但不能传播该权限。
例1
把查询Student表权限授给用户U1
GRANT SELECT ON TABLE Student TO U1;
例2
把对Student表和Course表的全部权限授予用户U2和U3
GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;
例3
把对表SC的查询权限授予所有用户
GRANT SELECT ON TABLE SC TO PUBLIC;
例4
把查询Student表和修改学生学号的权限授给用户U4
详细信息…
这里实际上要授予U4用户的是对基本表Student的SELECT权限和对属性列Sno的UPDATE权限。授予关于属性列的权限时必须明确指出相应属性列名。完成本授权操作的SQL语句为:
GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;
例5
把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户
GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;
详细信息…
执行此SQL语句后,U5不仅拥有了对表SC的INSERT权限,还可以传播此权限,即由U5用户发上述GRANT命令给其他用户。
例如U5可以将此权限授予U6:
GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION;
同样,U6还可以将此权限授予U7:
GRANT INSERT ON TABLE SC TO U7;
因为U6未给U7传播的权限,因此U7不能再传播此权限。
例6
DBA把在数据库S_C中建立表的权限授予用户U8
GRANT CREATETAB ON DATABASE S_C TO U8;
㈢ 怎么给oracle数据库创建用户,并赋权限
开始,运行输入cmd或是wind+r输入cmd
使用dba登录。
先创建一个用户:使用命令:create
user
用户名
identified
by
密码
给该用户解锁:使用命令:用户解锁
alter
user
用户名
account
unlock(不解锁无法登陆)
给该用户授权:grant
create
session
to
用户名。这里是给的登录权限。如果想把dba的权限授权给该用户。
㈣ 如何给MySql创建连接用户并授权
一般在为MySql创建用户时建议使用GRANT前台命令,当然如果对我们开发者而言,方法还有很多种,比如使用INSERT命令,甚至是直接修改mysql user数据表,但仍然建议按照MySQL规范去授权账户。因为它太容易忘记,特别整理方便参考。
1、登录MySQL
输入mysql -u root和密码即可登录到Mysql。
2、选择数据库
语句如下:use mysql;
3、在mysql的user表中增加连接用户
GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
其中:
“username”替换为将要授权的用户名,比如clientusr;
“password”替换为clientusr设置的密码;
4、可访问数据表授权
创建好帐户之后,就开始给上面的common user进行数据表授权,步骤3中增加的连接用户默认权限都是“N”的,必须在db表中为该帐户授权,允许其访问专用数据库,当然超级用户就不说了。
使用下面语句:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbx.* TO 'username'@'localhost' IDENTIFIED BY 'password';
本语句中的权限根据实际需要确定:
"dbx"替换为授权访问的数据库名,如果只给某张表授权:dbx.tablename
"username"是步骤2授权用户名
"password"是步骤2授权用户的设置密码
这样就为该用户授予了对某数据表的SELECT, INSERT, UPDATE, DELETE, CAREATE, DROP权限。
5、生效授权,创建完毕
FLUSH PRIVILEGES;
备注:
1、不要直接使用INSERT语句添加user记录,使用INSERT可能出现:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误。不过早期的MYSQL版本笔者倒没出现这个错误,因为天缘一直都是直接修改user表或直接使用INSERT语句完成,后来升级MYSQL到5.1的时候,发现可能会出现这个错误。
2、上文3和4,也可使用一句话GRANT ALL ON tbx.* TO 'username' IDENTIFIED BY 'password',这句话会自动创建username并为之授权。更多授权权限可参考MYSQL官方网站。