• 金仓数据库KingbaseES客户端应用参考手册--4. createuser


    4.1. 简介:

    createuser — 定义一个新的KingbaseES用户账户。

    createuser是一个命令行工具,该命令行工具位于KingbaseES安装目录的bin目录下。

    用来创建一个新的KingbaseES用户(或者更准确些,是一个角色)。只有超级用户和具有CREATEROLE特权的用户才能创建新用户, 因此createuser必须被以上两种用户调用。如果你希望创建一个新的超级用户,你必须作为一个超级用户连接,而不仅仅是具有CREATEROLE特权。作为一个超级用户意味着绕过数据库中所有访问权限检查的能力,因此超级用户地位不能轻易被授予。

    4.2. 命令行参数

    createuser [ connection-option ...] [ option ...] [ username ]

    4.3. 参数说明:

    createuser接受下列命令行参数:

    username

    指定要被创建的KingbaseES用户的名称。这个名称必须与这个KingbaseES安装中所有现存角色名字不同。

    -c number --connection-limit=number

    为该新用户设置一个最大连接数。默认值为不设任何限制。

    -d --createdb

    新用户将被允许创建新数据库。

    -D --no-createdb

    新用户将不被允许创建新数据库。这是默认值。

    -e --echo

    回显createuser生成并发送给服务器的命令信息。

    -E --encrypted

    此选项已过时,但为了实现向后兼容仍然接受。

    -g role --role=role

    指定一个角色,这个角色将立即加入其中成为其成员。如果要把这个角色加入到多个角色中作为成员,可以写多个-g开关。

    -i --inherit

    新角色将自动继承把他作为成员的角色的特权。这是默认值。

    -I --no-inherit

    新角色将不会自动继承把他作为成员的角色的特权。

    --interactive

    如果在命令行没有指定用户名,提示要求用户名,并且在命令行没有指定选项 -d/-D、 -r/-R-s/-S时也提示(一直到 KingbaseES V8.3 这都是默认行为)。

    -l --login

    新用户将被允许登入(即,该用户名能被用作初始会话用户标识符)。这是默认值。

    -L --no-login

    新用户将不被允许登入(一个没有登录特权的角色仍然可以作为管理数据库权限的方式而存在)。

    account unlock

    如果给定,account unlock将解锁用户,并且允许用户登录,这是默认值。不可以和-l,--login同时使用。

    account lock

    如果给定,account lock将锁定用户,并且不允许以该用户登录。不可以和-L,--no-login同时使用。

    -P --pwprompt

    如果给定,createuser将发出一个提示要求新用户的口令。如果你没有计划使用口令认证,这就不是必须的。

    -r --createrole

    新用户将被允许创建新的角色(即,这个用户将具有CREATEROLE特权)。

    -R --no-createrole

    新用户将不被允许创建新角色。这是默认值。

    -s --superuser

    新用户将成为一个超级用户。

    -S --no-superuser

    新用户将不会成为一个超级用户。这是默认值。

    -V --version

    打印createuser版本并退出。

    --replication

    新用户将具有REPLICATION特权,这在 CREATE ROLE 的文档中有更完整的描述。

    --no-replication

    新用户将不具有REPLICATION特权,这在 CREATE ROLE 的文档中有更完整的描述。

    -? --help

    显示有关createuser命令行参数的帮助并退出。

    createuser也接受下列命令行参数作为连接参数:

    -h host --host=host

    指定运行服务器的机器的主机名。如果该值以一个斜线开始,它被用作 Unix 域套接字的目录。

    -p port --port=port

    指定服务器正在监听连接的 TCP 端口或本地 Unix 域套接字文件扩展。

    -U username --username=username

    要使用哪个用户来连接数据库。(不是要创建的用户名)。

    -w --no-password

    从不发出一个输入密码提示。如果服务器要求密码认证并且没有其他方式提供密码(例如一个.kbpass文件),那么连接尝试将会失败。这个选项对于批处理任务和脚本有用,因为在其中没有一个用户来输入密码。

    -W --password

    强制createuser在连接到一个数据库之前提示要求输入一个密码。

    这个选项不是必不可少的,因为如果服务器要求密码认证,createuser将自动提示要求输入一个密码。但是,createuser将浪费一次连接尝试来发现服务器想要一个密码。在某些情况下值得用-W来避免额外的连接尝试。

    4.4. 环境变量:

    KINGBASE_HOST

    指定要连接的主机名,默认连接到localhost。

    KINGBASE_PORT

    指定要连接的服务器的端口号,默认为54321。需要根据数据库实际部署修订。

    KCIUSER

    指定要使用哪个用户连接数据库。默认与使用数据库的操作系统用户名相同。

    SYS_COLOR

    指定是否在诊断消息中使用颜色。可能的值是alwaysautonever. 和大部分其他KingbaseES工具相似,这个工具也使用libkci支持的环境变量。

    4.5. 错误信息诊断:

    在有错误发生时,可以在 CREATE ROLE 和 ksql 中找潜在问题和错误消息的提示信息。数据库服务器必须运行在目标主机上。同样,任何libkci前端库使用的默认连接设置和环境变量都将适用于此。

    4.6. 示例:

    要在默认数据库服务器上创建一个用户joe

    $ createuser joe
    

    要在默认数据库服务器上创建一个用户joe并提示要求一些额外属性:

    $ createuser --interactive joe
    Shall the new role be a superuser? (y/n) n
    Shall the new role be allowed to create databases? (y/n) n
    Shall the new role be allowed to create more new roles? (y/n) n
    

    要使用在主机eden、端口 5000上的服务器创建同一个用户joe,并带有显式指定的属性,看看下面的命令:

    $ createuser -h eden -p 5000 -S -D -R -e joe
    CREATE ROLE joe NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;
    

    要创建用户joe为一个超级用户并且立刻分配一个口令:

    $ createuser -P -s -e joe
    Enter password for new role: xyzzy
    Enter it again: xyzzy
    CREATE ROLE joe PASSWORD 'md5b5f5ba1a423792b526f799ae4eb3d59e' SUPERUSER
    CREATEDB CREATEROLE INHERIT LOGIN;
    

    在上面的例子中,在录入新口令时新口令并没有真正的被回显,但是为了清晰,我们特意把它列了出来。如你所见,该口令在被发送给客户端之前会被加密。

    4.7. 备注:

    4.8. 参考:

    dropuser , CREATE ROLE

  • 相关阅读:
    为什么Git的教程都那么繁杂?
    【2022秋线上作业-第5次-第11-13周】判断题
    智能合约编写高级篇(二)区块哈希介绍
    安装 Lua 的 HTTP 库
    Python在工业自动化领域的应用详解
    vscode 常用插件
    【Linux】线程池&读写锁
    华为机试真题 C++ 实现【等和子数组最小和】【2022.11 Q4新题】
    微前端是模块化后的最终选择
    计算机网络知识点总结——第三章数据链路层
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126475861