身份验证与授权(权限管理)

Authentication and Authorization

注意:身份授权与验证不能用于阻止恶意用户。如果有额外的做合理性和安全性的需求,InfluxDB可以运行在第三方服务内。

身份验证


InfluxDB的HTTP API和CLI(command line interface),通过简单的基于证书的内建权限控制,使用API链接数据库。启动身份验证后,http请求只有加入证书才能被接受。 
注意:身份验证适用于http请求的范围。插件不适用(Graphite, collectd, etc.)

设置身份验证

  1. 创建一个admin用户
  2. 默认情况下,在配置文件中,身份验证是关闭的。可以通过设置 [http] 中的 auth-enabled=true 来开启
  3. 重启应用

现在,InfluxDB会检查身份证书,并且只处理验证成功的request请求。 
注意:如果打开了身份验证功能,而且没有用户,InfluxDB会强制创建admin用户,并且只接受创建admin用户的query

身份验证请求


HTTP API

基本上控制台是可以这样的。 
Query:

curl -v -G "http://login1.org:8086/query?db=test&u=admin&p=admin" --data-urlencode "q=select * from table"
  • 1

Write:

curl -v -XPOST "http://login1.org:8086/write?db=test&u=admin&p=admin" --data-binary "table dd=44"
  • 1

用户名密码明文嵌入url即可。

CLI

有两种操作方式:

  • 启动控制台后,再设置用户 auth <username> <password>
$ influx
Connected to http://localhost:8086 version 0.9.4.1
InfluxDB shell 0.9.4.1
> auth admin admin
>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 以用户名密码启动:
influx -username todd -password influxdb4ever
  • 1

身份授权


默认情况下,身份验证是关闭的,并且所有的用户有所有的权限,相关认证都会被忽略。只有打开情况下才会验证授权信息。

用户类型及其权限


管理员

所有管理员有所有数据库的读写权限,并且可以执行以下所有的管理类查询语句: 
数据库管理:

◦ CREATE DATABASE, 和 DROP DATABASE 
◦ DROP SERIES 和 DROP MEASUREMENT 
◦ CREATE RETENTION POLICYALTER RETENTION POLICY, 和 DROP RETENTION POLICY 
◦ CREATE CONTINUOUS QUERY 和 DROP CONTINUOUS QUERY

用户管理: 
◦ Admin user management: 
CREATE USERGRANT ALL PRIVILEGESREVOKE ALL PRIVILEGES, 和 SHOW USERS 
◦ Non-admin user management: 
CREATE USERGRANT [READ,WRITE,ALL], REVOKE [READ,WRITE,ALL], 和 SHOW GRANTS 
◦ General user management: 
SET PASSWORD 和 DROP USER

非管理员用户:

非管理员用户可以赋一种权限: 
◦ READ 
◦ WRITE 
◦ ALL (READ 和 WRITE ) 
这三种情况可以赋给每个用户,每个数据库。

用户管理命令


管理员用户管理:

  • 创建一个新的管理员用户
CREATE USER <username> WITH PASSWORD '<password>' WITH ALL PRIVILEGES
  • 1
  • 为一个已有用户授权管理员权限
GRANT ALL PRIVILEGES TO <username>
  • 1
  • 取消用户权限
REVOKE ALL PRIVILEGES FROM <username>
  • 1
  • 展示用户及其权限
SHOW USERS
  • 1

非管理员用户管理:

  • 创建一个新的普通用户
CREATE USER <username> WITH PASSWORD '<password>'
  • 1
  • 为一个已有用户授权
GRANT [READ,WRITE,ALL] ON <database_name> TO <username>
  • 1
  • 取消权限
REVOKE [READ,WRITE,ALL] ON <database_name> FROM <username>
  • 1
  • 展示用户在不同数据库上的权限
SHOW GRANTS FOR <user_name>
  • 1

普通用户账号功能管理

  • 重设密码
SET PASSWORD FOR <username> = '<password>'
  • 1
  • 删除用户
DROP USER <username>
  • 1

用户验证与授权的http错误


当验证失败时http会返回:

HTTP 401 Unauthorized

InfluxDB命令使用的更多相关文章

  1. influxdb 命令

    写入数据: curl -X POST -d '[{"name":"foo","columns":["val"],&quo ...

  2. influxdb的命令们

    InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据.而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计 ...

  3. InfluxDB安装及配置

    这是我之前整理的InfluxDB安装及配置的笔记,这里记录下,也方便我以后查阅. 环境: CentOS6.5_x64 InfluxDB版本:1.1.0 一.安装 1.二进制安装 这里以centos6. ...

  4. 时序数据库InfluxDB:简介及安装

    在性能测试过程中,对测试结果以及的实时监控与展示也是很重要的一部分.这篇博客,介绍下linux环境下InfluxDB的安装以及功能特点. 官网地址:influxdata 官方文档:influxdb文档 ...

  5. InfluxDB部署

    InfluxDB介绍 官网:https://www.influxdata.com/ 文档:https://docs.influxdata.com/influxdb/v1.2/introduction/ ...

  6. 配置 influxDB 鉴权及 HTTP API 写数据的方法

    本文简要描述如何为 InfluxDB 开启鉴权和配置用户管理权限(安装后默认不需要登录),以及开启鉴权后如何使用 HTTP API 写数据. 创建 InfluxDB 管理员账号创建 admin 帐号密 ...

  7. [InfluxDB] 安装与配置

    [InfluxDB] 安装与配置 1- 下载 ubtuntu: wget https://dl.influxdata.com/influxdb/releases/influxdb_1.5.2_amd6 ...

  8. 存储-InfluxDB

    1 TSDB influxDB是一个time series时间序列数据库. 在监控系统的开发中,大体分为采集-存储-可视化三个大类.监控指标有很显著的时间特征数据,一般采用TSDB存储. 在TSDB中 ...

  9. prometheus + influxdb + grafana + mysql

    前言 本文介绍使用influxdb 作为prometheus持久化存储和使用mysql 作为grafana 持久化存储的安装方法 一 安装go环境 如果自己有go环境可以自主编译remote_stor ...

随机推荐

  1. Java面试题收集以及参考答案(100道)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  2. Android MVC,MVP,MVVM模式入门——重构登陆注册功能

    一  MVC模式: M:model,业务逻辑 V:view,对应布局文件 C:Controllor,对应Activity 项目框架: 代码部分: layout文件(适用于MVC和MVP两个Demo): ...

  3. 高德地图 Android编程中 如何设置使 标记 marker 能够被拖拽

    由于本人对智能手机真心的不太会用,我本人大概是不到3年前才买的智能手机,用以前的索尼爱立信手机比较方便小巧,平时学习工作打个电话发个短信也就够了,出去吃饭一般都是朋友拿手机去弄什么美团团购啥的,然后我 ...

  4. Sqlalchemy 设置表编码及引擎

    1. 设置引擎编码方式为utf8. engine = create_engine("mysql+pymysql://root:123456@127.0.0.1:3306/sqldb01?ch ...

  5. c++ 载入内存中dll ,以及内存注入

    用c++ 许多代码都得自己写, 这里是我自己修改的一个内存载入的一个封装库 , c++ 的程序员可以直接拿来用 特点如下: 直接在内存中载入,无磁盘占用 支持加壳保护的dll , 平时用的最多的vmp ...

  6. windows中的oracle12SE后启动的系统服务的列表

    下图是我安装在windows 10下安装好oracle12.10SE之后的启动的系统服务的列表. 通常,我是将其全部修改为手动启动.当需要用oracle服务的时候,只需要启动对应的实例的服务和tnsl ...

  7. 线性回归 Linear regression(4) 局部加权回归

    这篇文章将介绍过拟合和欠拟合的概念,并且介绍局部加权回归算法. 过拟合和欠拟合 之前在线性回归中,我们总是将单独的x作为我们的特征,但其实我们可以考虑将,甚至x的更高次作为我们的特征,那么我们通过线性 ...

  8. BZOJ2936 Codevs3634 POI1999 积水 【并查集】*

    BZOJ2936 Codevs3634 POI1999 积水 题目描述 有这样一块土地,它可以被划分成N×M个正方形小块,每块面积是一平方英寸,第i行第j列的小块可以表示成P(i,j).这块土地高低不 ...

  9. 《DSP using MATLAB》示例Example 8.20

    %% ------------------------------------------------------------------------ %% Output Info about thi ...

  10. windows 2016 容器管理

    1. docker-compose 安装        python   2.7        pip       pip   install docker-compose        常见问题: ...