成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

[粗]巧用Sybase數據庫中的超級用戶密碼

2010-08-28 10:45:56來源:西部e網作者:

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

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

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

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

  #include < stdlib.h>

  #include < string.h>

  #include < fcntl.h>

  #include < time.h>

  #include < sys/types.h>

  char *passwd() /*普通用戶需要的密碼: 簡單加密后字符串*/

  {

  struct tm *tp;

  long secs;

  char *buff;

  buff=(char *)malloc(30);

  secs=time((long *)0);

  tp=localtime(&secs);

  sprintf(buff,"dd%d",tp->tm_mon+1+9,tp->tm_mday+2,8);

  return(buff);

  }

  main()

  {

  char str1[80],str2[80];

  int i;

  printf("passwd:");

  system("stty -echo"); /* 不顯示*/

  gets(str1);

  system("stty echo");

  for(i=3;i< 9;i++)str2[i-3]=str1[i]; /*截取輸入6個字符*/

  str2[6]='\0';

  if (strcmp(str2,passwd() ) ){

  printf("passwd error!\n");

  exit(1);

  }

  setuid(0);

  system("/sybase/atuo/sybase_kill");

  printf("\n");

  }

  然后進行編譯。

  #cc c.c -o kill-spid

  2.對產生的目標文件設置用戶的“s”權限。

  #chmod u+s obj-name  

  3.將目標文件放置在執行用戶的任意目錄下,例如,tmp目錄。   

  4.執行文件“sybase-kill”應該存放在僅可以允許訪問該文件的目錄下,并設置其權限。例如,只允許Sybase用戶可以進行讀寫。   

  # mkdir /sybase/auto

  #chmod 700 /sybase/atuo

  #chmod g+t /sybase/atuo

  #chown sybase:sybase /sybase/atuo

  #cd /sybase/atuo  

  5.sybase-kill文件內容,具體如下。   

  trap '' 1 2 3 9 15 #設置屏蔽信號,目的是不允許中斷產生。

  for pid in ` echo "set nocount on \n

  select distinct blocked from master..sysprocesses

  where blocked>0 \ngo" isql -Uaaa -Paaaaaa -w200 -SFEBS sed "1,2d" `

  do

  echo "Kill "$pid

  isql -Usa -w200 -Sserv_name < < EOF

  password123321

  kill $pid

  go

  EOF

  done

  echo "ok"  

  上述內容會處理所有阻塞的進程,不管是否最終是由它引起的。當然,您也可以找出是誰引起的阻塞,然后再處理該進程,僅僅通過修改其“sybase-kill”文件內容即可完成。

關鍵詞:Sybase

贊助商鏈接:

主站蜘蛛池模板: 开远市| 乌拉特中旗| 洞头县| 襄城县| 石屏县| 乐都县| 乃东县| 伊宁县| 报价| 麟游县| 阜宁县| 绥宁县| 巴彦县| 泸西县| 克东县| 高青县| 上林县| 定兴县| 永定县| 楚雄市| 仁布县| 阳原县| 富川| 连南| 环江| 桂林市| 红安县| 丹江口市| 岢岚县| 兰坪| 莱州市| 新竹县| 安宁市| 木里| 休宁县| 英吉沙县| 奉节县| 武清区| 错那县| 广安市| 中卫市|