熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Sybase >> 正文

解析:如何設置Sybase用戶權限處理進程[1]

2013-11-12 23:40:42  來源: Sybase 
    免費看《Windows CE 嵌入式系統開發從基礎到實踐》

  我們在使用Sybase數據庫的過程中經常會遇到Sybase數據庫系統上鎖的情況而多數情況下用戶必須通過超級用戶身份登錄系統以處理該進程通常為了保障Sybase數據庫系統的安全性超級用戶口令往往掌握在數據庫管理員的手中

  當上述情況發生時如果數據庫管理員不在現場或無法通過其他方式進行處理時口頭告知密碼雖然可以解決一時的燃眉之急但數據庫系統的安全無疑會受到嚴重的威脅;而重新啟動Sybase數據庫系統也是一種解決的方法不過這種作法很有可能造成數據庫中數據的丟失甚至導致用戶數據庫的崩潰不到萬不得已請不要使用此方法

  如果能夠對用戶權限加以設置使普通用戶也能夠進行進程的處理而又不用知曉 Sybase數據庫系統的超級用戶密碼無疑是處理上述問題的最佳解決方法現在筆者就把針對上述情況的整個處理過程詳細介紹給大家以供參考當然您可以根據自己的需要設置普通用戶密碼也可以限制更多的內容來處理數據庫系統中的進程具體的處理過程如下文所示

  使用C語言編寫一個程序如下

  #include < stdlibh>
  #include < stringh>
  #include < fcntlh>
  #include < timeh>
  #include < sys/typesh>
  char *passwd() /*普通用戶需要的密碼: 簡單加密後字符串*/
  {
  struct tm *tp;
  long secs;
  char *buff;
  buff=(char *)malloc();
  secs=time((long *));
  tp=localtime(&secs);
  sprintf(buff%d%d%dtp>tm_mon++tp>tm_mday+);
  return(buff);
  }
  main()
  {
  char str[]str[];
  int i;
  printf(passwd:);
  system(stty echo); /* 不顯示*/
  gets(str);
  system(stty echo);
  for(i=;i< ;i++)str[i]=str[i]; /*截取輸入個字符*/
  str[]=\;
  if (strcmp(strpasswd() ) ){
  printf(passwd error!\n);
  exit();
  }
  setuid();
  system(/sybase/atuo/sybase_kill);
  printf(\n);
  }

  然後進行編譯

  #cc cc o killspid

[]  []  


From:http://tw.wingwit.com/Article/program/Sybase/201311/11217.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.