Sha256: b0bbf9530c41cc213e9555c8e1c2349b6061beabc45a62b951db173710c54b5b

Contents?: true

Size: 1.74 KB

Versions: 25

Compression:

Stored size: 1.74 KB

Contents

module Myreplicator
  class VerticaUtils
    class << self
      # Example: get_grant({:db => "bidw", :schema => "king", :table => "customer"})
      def get_grants *args
        options = args.extract_options!
        db = options[:db]
        schema = options[:schema]
        table = options[:table]
        sql = "SELECT * FROM grants WHERE object_schema = '#{schema}' AND object_name = '#{table}';"
        result = Myreplicator::DB.exec_sql("vertica",sql)
        sqls = []
        result.entries.each do |priv|
          privilege = priv[:privileges_description]
          grantee = priv[:grantee]
          begin
            sql = "GRANT #{privilege} ON #{schema}.#{table} TO #{grantee};"
            sqls << sql
            puts sql
          rescue Exception => e
            puts e.message
          end
        end
        return sqls
      end
    
      # Example: set_grants sqls
      def set_grants sqls
        sqls.each do |sql|
          begin
            puts sql
            Myreplicator::DB.exec_sql("vertica",sql)
          rescue Exception => e
            puts e.message
          end
        end
      end
    
      # Example: save_grants_to_file({:sqls => ["GRANT ..","GRANT ..."], :file=>"grants.txt"})
      def save_grants_to_file *args
        options = args.extract_options!
        sqls = options[:sqls]
        filename = Rails.root.join('tmp', options[:file])
        file = File.open(filename, "w+")
        sqls.each do |sql|
          file.puts sql.to_s
        end
        file.close()
      end
    
      def load_grants_from_file f
        file = Rails.root.join('tmp', f)
        file = File.open(filename, "r")
        sqls = file.readlines
        file.close()
        return sqls
      end
      
    end #end class << self
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
myreplicator-1.1.73 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.71 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.69 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.68 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.67 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.66 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.65 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.64 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.63 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.62 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.61 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.58 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.57 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.56 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.55 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.54 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.53 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.52 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.51 lib/loader/vertica/vertica_utils.rb
myreplicator-1.1.50 lib/loader/vertica/vertica_utils.rb