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