前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TIDB 初级课程体验 7 (用户管理与权限,跳过密码)

TIDB 初级课程体验 7 (用户管理与权限,跳过密码)

作者头像
AustinDatabases
发布2021-09-02 16:23:35
5240
发布2021-09-02 16:23:35
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

TIDB 的认证与权限的赋予, TIDB 的认证如同对数据库的登录的设置,如果没有通过认证,则用户是不能登录到数据库中的,授权的主要作用是对用户访问数据库的对象进行控制的操作。

主要TIDB 服务器主机的对于MYSQL的客户端的连接,通过连接层来进行接入,在通过connection layer 来对TIDB的服务器的process进行访问。

远程访问连接与MYSQL 一样,也是需要PORT , IP 地址等进行访问,可以说TIDB 在访问与MYSQL 没有任何区别。

建立账号与MYSQL也没有区别,使用了MYSQL 8 的方式 ,创建用户使用CREATE 命令,另外也有少许的不同

例如 create user 'test' 的意思是创建一个用户名 test的用户,可以通过远程来访问,类似于 create user 'test'@'%' 并且没有密码。

与mysql一样,可以在mysql.user中查询当前数据库的账号信息,

TIDB 同时也提供的角色的概念, 相关的信息也是存储在 mysql.users表中,角色和用户是一样的,用户和角色之间的定义不同在于,角色和赋予权限给用户。另外角色在创建后,也是不能进行数据库连接的,也就是被lock住。用户名大小写也是敏感的,如果通过角色来进行用户的权限的赋予是要使用 set role all 命令来启动赋予的角色的权限。其他的命令与MYSQL没有不同

1 授予用户权限

2 赋予所有用户权限和授权

3 收回用户权限

4 查看用户权限

5 删除用户

下面通过建立角色,使用角色对用户进行权限的赋值

1 我们建立一个叫 dba_admin的角色,并且将所有的权限都赋予这个角色.

建立的ROLE 在ACCOUNT_LOCK 是Y ,这点是用户和角色的区别

在使用角色给test用户赋值后, 通过test用户登陆到系统后需要使用 set role all 来激活角色, 否则用户不具有相关角色赋予的权限.

这里有一点有点意思,在赋予权限的账号中,删除角色是可以实现的,在删除角色后,马上test 就没有相关的权限.

改变用户的密码也和MYSQL是一致的,如果要改变密码就需要具有MYSQL.USER 和 MYSQL 数据库的写入的权限。

也继承了MYSQL 5.X 中关于忘记密码后的操作方式,skip-grant-table = true的方式。

我们对ROOT 设置密码, 然后通过 skip-grant-table =true 的方式来接触root账号的密码

这里我们需要更改tidb的配置信息, 具体按照你安装tidb 的具体位置,这里假设配置文件的位置为/tidb-deploy/tidb-4000/conf/tidb.toml

添加如上信息

[security]

skip-grant-table = true

保存后,重启TIDB 数据库

再次尝试不通过密码使用root账号来登陆数据库,实验通过.

上面的实验虽然在课上提到过,但如果之前在听配置的时候没有认真,并且不自己查找修改配置的方法,则上面的实验初学者做起来比较困难.

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档