zoukankan      html  css  js  c++  java
  • PostgreSQL小工具脚本

    授权某个用户对所有数据库下的schema的访问权限
    可根据实际需求修改

    #!/bin/bash
    #Defining connection information
    #Default user posgres
    #Author:Songshaohua
    #Date:2020-07-08
    #Version:default
    function Usage(){
        if [ $# -ne 1 ];then
            echo "Usage: sh $0 需要被授权的用户"
            exit 999
        fi
    }
    
    function grant_privs(){
        DEFAULTUSER=postgres
        DEFAULTDB=postgres
        conninfo="psql -U ${DEFAULTUSER} -d ${DEFAULTDB} -Atq -c"
        dblist=`${conninfo} "SELECT datname FROM pg_database WHERE datname !~ 'template0|template1'"`
        #连接到每个数据库进行授权
        for db in ${dblist};do
            #先查询每个数据库中的schema,普通用户对数据库操作实际上是对schema操作
            dbconn="psql -U ${DEFAULTUSER} -d ${db} -Atq -c"
            schemalist=`${dbconn} "SELECT nspname FROM pg_namespace WHERE nspname !~ '^pg|information_schema'"`
            for slist in ${schemalist};do
                ${dbconn} "GRANT USAGE  ON SCHEMA ${slist} TO $1"
                ${dbconn} "GRANT SELECT ON ALL TABLES IN SCHEMA ${slist} TO $1"
                ${dbconn} "GRANT UPDATE ON ALL TABLES IN SCHEMA ${slist} TO $1"
            done
        done
    }
    
    main(){
        Usage $1
        grant_privs $1
    }
    main $*
  • 相关阅读:
    五子棋
    纯ASP实现的“无刷新”聊天室
    砸砖块
    ASP.NET中批量插入数据
    判断一个dataset的数据是否包含另一个dataset的数据
    使用DB2时的一些问题
    RTOS,什么是硬实时和软实时
    异或运算^的一个作用
    vc 重启和关机
    About DLL
  • 原文地址:https://www.cnblogs.com/sandata/p/15002369.html
Copyright © 2011-2022 走看看