Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
suliangchun
dbeaver
提交
1907a95a
D
dbeaver
项目概览
suliangchun
/
dbeaver
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dbeaver
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
1907a95a
编写于
9月 24, 2020
作者:
S
Serge Rider
提交者:
GitHub
9月 24, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #9865 from dbeaver/datatransfer-restrict#9521
#9521 Check for required permissions in datatransfer
上级
de64cdbf
ebaba621
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
43 addition
and
5 deletion
+43
-5
plugins/org.jkiss.dbeaver.data.transfer/src/org/jkiss/dbeaver/tools/transfer/database/DatabaseTransferConsumer.java
...ver/tools/transfer/database/DatabaseTransferConsumer.java
+10
-1
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourcePermission.java
.../src/org/jkiss/dbeaver/model/DBPDataSourcePermission.java
+6
-4
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/messages/ModelMessages.java
...l/src/org/jkiss/dbeaver/model/messages/ModelMessages.java
+9
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/messages/ModelResources.properties
...rg/jkiss/dbeaver/model/messages/ModelResources.properties
+9
-0
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/messages/ModelResources_ru.properties
...jkiss/dbeaver/model/messages/ModelResources_ru.properties
+9
-0
未找到文件。
plugins/org.jkiss.dbeaver.data.transfer/src/org/jkiss/dbeaver/tools/transfer/database/DatabaseTransferConsumer.java
浏览文件 @
1907a95a
...
...
@@ -134,7 +134,7 @@ public class DatabaseTransferConsumer implements IDataTransferConsumer<DatabaseC
try
{
initExporter
(
session
.
getProgressMonitor
());
}
catch
(
DBException
e
)
{
throw
new
DBCException
(
"Error initializing exporter"
);
throw
new
DBCException
(
"Error initializing exporter"
,
e
);
}
if
(
containerMapping
==
null
)
{
throw
new
DBCException
(
"Internal error: consumer mappings not set"
);
...
...
@@ -527,6 +527,10 @@ public class DatabaseTransferConsumer implements IDataTransferConsumer<DatabaseC
}
private
void
createTargetTable
(
DBCSession
session
,
DatabaseMappingContainer
containerMapping
)
throws
DBException
{
DBPDataSourceContainer
dataSourceContainer
=
session
.
getDataSource
().
getContainer
();
if
(!
dataSourceContainer
.
hasModifyPermission
(
DBPDataSourcePermission
.
PERMISSION_EDIT_METADATA
))
{
throw
new
DBCException
(
"New table creation in database ["
+
dataSourceContainer
.
getName
()
+
"] restricted by connection configuration"
);
}
DBSObjectContainer
schema
=
settings
.
getContainer
();
if
(
schema
==
null
)
{
throw
new
DBException
(
"No target container selected"
);
...
...
@@ -544,6 +548,11 @@ public class DatabaseTransferConsumer implements IDataTransferConsumer<DatabaseC
}
private
void
createTargetAttribute
(
DBCSession
session
,
DatabaseMappingAttribute
attribute
)
throws
DBCException
{
DBPDataSourceContainer
dataSourceContainer
=
session
.
getDataSource
().
getContainer
();
if
(!
dataSourceContainer
.
hasModifyPermission
(
DBPDataSourcePermission
.
PERMISSION_EDIT_METADATA
))
{
throw
new
DBCException
(
"New attribute creation in database ["
+
dataSourceContainer
.
getName
()
+
"] restricted by connection configuration"
);
}
session
.
getProgressMonitor
().
subTask
(
"Create column "
+
DBUtils
.
getObjectFullName
(
attribute
.
getParent
().
getTarget
(),
DBPEvaluationContext
.
DDL
)
+
"."
+
attribute
.
getTargetName
());
try
{
DatabaseTransferUtils
.
executeDDL
(
session
,
new
DBEPersistAction
[]
{
DatabaseTransferUtils
.
generateTargetAttributeDDL
(
session
.
getDataSource
(),
attribute
)
}
);
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBPDataSourcePermission.java
浏览文件 @
1907a95a
...
...
@@ -16,15 +16,17 @@
*/
package
org.jkiss.dbeaver.model
;
import
org.jkiss.dbeaver.model.messages.ModelMessages
;
/**
* Data-source permissions
*/
public
enum
DBPDataSourcePermission
{
PERMISSION_EDIT_DATA
(
"edit.data"
,
"Restrict data edit"
,
"Restrict and direct data modifications"
),
PERMISSION_EDIT_METADATA
(
"edit.meta"
,
"Restrict structure edit"
,
"Restrict structure (metadata) changes, like tables create/drop"
),
PERMISSION_EXECUTE_SCRIPTS
(
"edit.execute"
,
"Restrict script execute"
,
"Restruct custom user scripts (SQL) execution"
),
PERMISSION_IMPORT_DATA
(
"import.data"
,
"Restrict data import"
,
"Restrict importing data"
);
PERMISSION_EDIT_DATA
(
"edit.data"
,
ModelMessages
.
dbp_permission_edit_data_name
,
ModelMessages
.
dbp_permission_edit_data_description
),
PERMISSION_EDIT_METADATA
(
"edit.meta"
,
ModelMessages
.
dbp_permission_edit_metadata_name
,
ModelMessages
.
dbp_permission_edit_metadata_description
),
PERMISSION_EXECUTE_SCRIPTS
(
"edit.execute"
,
ModelMessages
.
dbp_permission_execute_scripts_name
,
ModelMessages
.
dbp_permission_execute_scripts_description
),
PERMISSION_IMPORT_DATA
(
"import.data"
,
ModelMessages
.
dbp_permission_import_data_name
,
ModelMessages
.
dbp_permission_import_data_description
);
private
final
String
id
;
private
final
String
label
;
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/messages/ModelMessages.java
浏览文件 @
1907a95a
...
...
@@ -173,6 +173,15 @@ public class ModelMessages extends NLS {
public
static
String
dialog_connection_wizard_start_connection_monitor_thread
;
public
static
String
dialog_connection_wizard_start_dialog_error_message
;
public
static
String
dbp_permission_edit_data_name
;
public
static
String
dbp_permission_edit_data_description
;
public
static
String
dbp_permission_edit_metadata_name
;
public
static
String
dbp_permission_edit_metadata_description
;
public
static
String
dbp_permission_execute_scripts_name
;
public
static
String
dbp_permission_execute_scripts_description
;
public
static
String
dbp_permission_import_data_name
;
public
static
String
dbp_permission_import_data_description
;
static
{
// initialize resource bundle
NLS
.
initializeMessages
(
BUNDLE_NAME
,
ModelMessages
.
class
);
...
...
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/messages/ModelResources.properties
浏览文件 @
1907a95a
...
...
@@ -139,3 +139,12 @@ dialog_connection_wizard_start_connection_monitor_subtask_test = Test connection
dialog_connection_wizard_start_connection_monitor_success
=
Success
dialog_connection_wizard_start_connection_monitor_thread
=
Test datasource connection
dialog_connection_wizard_start_dialog_error_message
=
Database connectivity error
dbp_permission_edit_data_name
=
Restrict data edit
dbp_permission_edit_data_description
=
Restrict direct data modifications
dbp_permission_edit_metadata_name
=
Restrict structure edit
dbp_permission_edit_metadata_description
=
Restrict structure (metadata) changes, like tables create
dbp_permission_execute_scripts_name
=
Restrict script execute
dbp_permission_execute_scripts_description
=
Restrict custom user scripts (SQL) execution
dbp_permission_import_data_name
=
Restrict data import
dbp_permission_import_data_description
=
Restrict importing data
plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/messages/ModelResources_ru.properties
浏览文件 @
1907a95a
...
...
@@ -57,3 +57,12 @@ dialog_connection_wizard_start_connection_monitor_success=\u0423\u0441\u043F\u04
dialog_connection_wizard_start_connection_monitor_thread
=
\u
041F
\u0440\u
043E
\u0432\u0435\u0440\u
043A
\u0430
\u0441\u
043E
\u0435\u0434\u0438\u
043D
\u0435\u
043D
\u0438\u
044F
\u0441
\u0438\u0441\u0442\u
043E
\u0447\u
043D
\u0438\u
043A
\u
043E
\u
043C
\u0434\u0430\u
043D
\u
043D
\u
044B
\u0445
dialog_connection_wizard_start_dialog_error_message
=
\u
041E
\u0448\u0438\u0431\u
043A
\u0430
\u0441\u
043E
\u0435\u0434\u0438\u
043D
\u0435\u
043D
\u0438\u
044F
\u0441
\u0411\u0414
dialog_connection_wizard_start_connection_monitor_connected
=
\u0421\u
043E
\u0435\u0434\u0438\u
043D
\u0435\u
043D
\u
043E ({0}
\u
043C
\u0441
)
dbp_permission_edit_data_name
=
\u0417\u0430\u
043F
\u0440\u0435\u0442\u0438\u0442\u
044C
\u0438\u0437\u
043C
\u0435\u
043D
\u0435\u
043D
\u0438\u0435
\u0434\u0430\u
043D
\u
043D
\u
044B
\u0445
dbp_permission_edit_data_description
=
\u0417\u0430\u
043F
\u0440\u0435\u0442\u0438\u0442\u
044C
\u
043F
\u0440\u
044F
\u
043C
\u0443\u
044E
\u
043C
\u
043E
\u0434\u0438\u0444\u0438\u
043A
\u0430\u0446\u0438\u
044E
\u0434\u0430\u
043D
\u
043D
\u
044B
\u0445
dbp_permission_edit_metadata_name
=
\u0417\u0430\u
043F
\u0440\u0435\u0442\u0438\u0442\u
044C
\u0438\u0437\u
043C
\u0435\u
043D
\u0435\u
043D
\u0438\u0435
\u0441\u0442\u0443\u
043A
\u0442\u0443\u0440\u
044B
dbp_permission_edit_metadata_description
=
\u0417\u0430\u
043F
\u0440\u0435\u0442\u0438\u0442\u
044C
\u0438\u0437\u
043C
\u0435\u
043D
\u0435\u
043D
\u0438\u0435
\u0441\u0442\u0440\u0443\u
043A
\u0442\u0443\u0440\u
044B (
\u
043D
\u0430\u
043F
\u0440\u0438\u
043C
\u0435\u0440
\u0441\u
043E
\u0437\u0434\u0430\u
043D
\u0438\u0435
\u0442\u0430\u0431\u
043B
\u0438\u0446
)
dbp_permission_execute_scripts_name
=
\u0417\u0430\u
043F
\u0440\u0435\u0442\u0438\u0442\u
044C
\u0432\u
044B
\u
043F
\u
043E
\u
043B
\u
043D
\u0435\u
043D
\u0438\u0435
\u0441\u
043A
\u0440\u0438\u
043F
\u0442\u
043E
\u0432
dbp_permission_execute_scripts_description
=
\u0417\u0430\u
043F
\u0440\u0435\u0442\u0438\u0442\u
044C
\u0432\u
044B
\u
043F
\u
043E
\u
043B
\u
043D
\u0435\u
043D
\u0438\u0435
\u
043F
\u
043E
\u
043B
\u
044C
\u0437\u
043E
\u0432\u0430\u0442\u0435\u
043B
\u
044C
\u0441\u
043A
\u0438\u0445
SQL
\u0441\u
043A
\u0440\u0438\u
043F
\u0442\u
043E
\u0432
dbp_permission_import_data_name
=
\u0417\u0430\u
043F
\u0440\u0435\u0442\u0438\u0442\u
044C
\u0438\u
043C
\u
043F
\u
043E
\u0440\u0442
\u0434\u0430\u
043D
\u
043D
\u
044B
\u0445
dbp_permission_import_data_description
=
\u0417\u0430\u
043F
\u0440\u0435\u0442\u0438\u0442\u
044C
\u0438\u
043C
\u
043F
\u
043E
\u0440\u0442
\u0434\u0430\u
043D
\u
043D
\u
044B
\u0445
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录