User Guide

用户接口

Moonbox内置http server和tcp server,支持通过rest api、shell以及jdbc编程方式接入。其中:

使用命令行

cd $MOONBOX_HOME/bin
./moonbox-shell -u username -p password [-h localhost -P 18090 -r local]

其中:

使用rest api

提交批量作业

curl -XPOST http://host:port/batch/submit -d '{
    "username" : "",
    "password" : "",
    "config" : {},
    "lang" : "mql",
    "sqls" : ["use default", "insert into ..."]
}'

查询作业状态

curl -XPOST http://host:port/batch/progress -d '{
    "username" : "",
    "password" : "",
    "jobId" : ""
}'

取消作业状态

curl -XPOST http://host:port/batch/cancel -d '{
    "username" : "",
    "password" : "",
    "jobId" : ""
}'

使用jdbc编程

Moonbox提供了jdbc驱动,请自行下载。以下为Scala示例:

Class.forName("moonbox.jdbc.MbDriver")
val url = s"jdbc:moonbox://host:port/database"
// if want to connect to local app
// val url = s"jdbc:moonbox://host:port/database?islocal=true"
val username = "username"
val password = "password"
val connection = DriverManager.getConnection(url, username, password)
val statement = connection.createStatement()
statement.setQueryTimeout(60*10)
statement.setFetchSize(200)
val rs = statement.executeQuery("select * from mysql_test")
while (rs.next) {
    println(rs.getString(1))
}

命令介绍

ROOT用户

ROOT用户作为系统管理员,推荐仅用作创建管理Organization和Sa(管理员)。ROOT可以执行的指令有:

# 修改自己的用户名
ALTER USER root IDENTIFIED BY newPassword

# 创建Organization
CREATE ORG orgname
# 重命名Organization
RENAME ORG orgname TO newname
ALTER ORG orgname RENAME TO newname
# 删除Organization
DROP ORG orgname

# 在Organization中创建Sa用户
CREATE SA saname IN ORG orgname
# 给Sa修改密码
RENAME SA saname IN ORG orgname TO newpassword
ALTER SA saname IN ORG orgname RENAME TO newpassword
# 删除SA
DROP SA saname IN ORG orgname

Sa用户

Basic Concept章节已经介绍过User的六大属性,只要拥有某个属性即有权限执行对应的一类指令。Sa是由ROOT创建,拥有全部权限。以下仅列出Sa的特殊命令,其余命令将合并到普通用户节讲解。

# 给用户授权, 类似于角色类授权。Moonbox为简单起见,目前以下指令限定只能Sa执行,也即角色类权限不能传递授权。
GRANT GRANT OPTION ACCOUNT, DDL, DCL TO USER username
# 取消用户授权
REVOKE GRANT OPTION ACCOUNT, DDL, DCL FROM USER username

Sa用户和普通用户

我们将根据用户拥有的权限来分类进行指令的介绍