diff --git a/pkg/api/pluginproxy/ds_proxy.go b/pkg/api/pluginproxy/ds_proxy.go
index faac8c03c624..72309c5c8555 100644
--- a/pkg/api/pluginproxy/ds_proxy.go
+++ b/pkg/api/pluginproxy/ds_proxy.go
@@ -166,7 +166,9 @@ func (proxy *DataSourceProxy) getDirector() func(req *http.Request) {
func (proxy *DataSourceProxy) validateRequest() error {
if proxy.ds.Type == m.DS_INFLUXDB {
if proxy.ctx.Query("db") != proxy.ds.Database {
- return errors.New("Datasource is not configured to allow this database")
+ if(!proxy.ds.JsonData.Get("allowDatabaseQuery").MustBool(false)) {
+ return errors.New("Datasource is not configured to allow this database");
+ }
}
}
diff --git a/public/app/plugins/datasource/influxdb/datasource.ts b/public/app/plugins/datasource/influxdb/datasource.ts
index 7b53d0e1d978..80294396395c 100644
--- a/public/app/plugins/datasource/influxdb/datasource.ts
+++ b/public/app/plugins/datasource/influxdb/datasource.ts
@@ -17,6 +17,7 @@ export default class InfluxDatasource {
basicAuth: any;
withCredentials: any;
interval: any;
+ allowDatabaseQuery: boolean;
supportAnnotations: boolean;
supportMetrics: boolean;
responseParser: any;
@@ -35,6 +36,7 @@ export default class InfluxDatasource {
this.basicAuth = instanceSettings.basicAuth;
this.withCredentials = instanceSettings.withCredentials;
this.interval = (instanceSettings.jsonData || {}).timeInterval;
+ this.allowDatabaseQuery = (instanceSettings.jsonData || {}).allowDatabaseQuery === true;
this.supportAnnotations = true;
this.supportMetrics = true;
this.responseParser = new ResponseParser();
@@ -214,6 +216,9 @@ export default class InfluxDatasource {
if (options && options.database) {
params.db = options.database;
+ if (params.db !== this.database && !this.allowDatabaseQuery) {
+ return this.$q.reject( { message: 'This datasource does not allow changing database' } );
+ }
} else if (this.database) {
params.db = this.database;
}
diff --git a/public/app/plugins/datasource/influxdb/partials/config.html b/public/app/plugins/datasource/influxdb/partials/config.html
index 9cb6f5ba7498..4b8610839281 100644
--- a/public/app/plugins/datasource/influxdb/partials/config.html
+++ b/public/app/plugins/datasource/influxdb/partials/config.html
@@ -23,10 +23,16 @@
+