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

[粗]巧用Sybase數(shù)據(jù)庫(kù)中的超級(jí)用戶密碼

2010-08-28 10:45:56來(lái)源:西部e網(wǎng)作者:

     在使用Sybase數(shù)據(jù)庫(kù)的過(guò)程中,我們經(jīng)常會(huì)遇到Sybase數(shù)據(jù)庫(kù)系統(tǒng)上鎖的情況,而多數(shù)情況下,用戶必須通過(guò)超級(jí)用戶身份登錄系統(tǒng),以處理該進(jìn)程。通常為了保障Sybase數(shù)據(jù)庫(kù)系統(tǒng)的安全性,超級(jí)用戶口令往往掌握在數(shù)據(jù)庫(kù)管理員的手中。

  當(dāng)上述情況發(fā)生時(shí),如果數(shù)據(jù)庫(kù)管理員不在現(xiàn)場(chǎng)或無(wú)法通過(guò)其他方式進(jìn)行處理時(shí),口頭告知密碼雖然可以解決一時(shí)的燃眉之急,但數(shù)據(jù)庫(kù)系統(tǒng)的安全無(wú)疑會(huì)受到嚴(yán)重的威脅;而重新啟動(dòng)Sybase數(shù)據(jù)庫(kù)系統(tǒng)也是一種解決的方法,不過(guò)這種作法很有可能造成數(shù)據(jù)庫(kù)中數(shù)據(jù)的丟失,甚至導(dǎo)致用戶數(shù)據(jù)庫(kù)的崩潰,不到萬(wàn)不得已,請(qǐng)不要使用此方法。   

  如果能夠?qū)τ脩魴?quán)限加以設(shè)置,使普通用戶也能夠進(jìn)行進(jìn)程的處理,而又不用知曉Sybase數(shù)據(jù)庫(kù)系統(tǒng)的超級(jí)用戶密碼,無(wú)疑是處理上述問(wèn)題的最佳解決方法。現(xiàn)在,筆者就把針對(duì)上述情況的整個(gè)處理過(guò)程詳細(xì)介紹給大家,以供參考。當(dāng)然,您可以根據(jù)自己的需要設(shè)置普通用戶密碼,也可以限制更多的內(nèi)容來(lái)處理數(shù)據(jù)庫(kù)系統(tǒng)中的進(jìn)程。具體的處理過(guò)程如下文所示。   

  1.使用C語(yǔ)言編寫(xiě)一個(gè)程序如下。   

  #include < stdlib.h>

  #include < string.h>

  #include < fcntl.h>

  #include < time.h>

  #include < sys/types.h>

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

  {

  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個(gè)字符*/

  str2[6]='\0';

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

  printf("passwd error!\n");

  exit(1);

  }

  setuid(0);

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

  printf("\n");

  }

  然后進(jìn)行編譯。

  #cc c.c -o kill-spid

  2.對(duì)產(chǎn)生的目標(biāo)文件設(shè)置用戶的“s”權(quán)限。

  #chmod u+s obj-name  

  3.將目標(biāo)文件放置在執(zhí)行用戶的任意目錄下,例如,tmp目錄。   

  4.執(zhí)行文件“sybase-kill”應(yīng)該存放在僅可以允許訪問(wèn)該文件的目錄下,并設(shè)置其權(quán)限。例如,只允許Sybase用戶可以進(jìn)行讀寫(xiě)。   

  # mkdir /sybase/auto

  #chmod 700 /sybase/atuo

  #chmod g+t /sybase/atuo

  #chown sybase:sybase /sybase/atuo

  #cd /sybase/atuo  

  5.sybase-kill文件內(nèi)容,具體如下。   

  trap '' 1 2 3 9 15 #設(shè)置屏蔽信號(hào),目的是不允許中斷產(chǎn)生。

  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"  

  上述內(nèi)容會(huì)處理所有阻塞的進(jìn)程,不管是否最終是由它引起的。當(dāng)然,您也可以找出是誰(shuí)引起的阻塞,然后再處理該進(jìn)程,僅僅通過(guò)修改其“sybase-kill”文件內(nèi)容即可完成。

關(guān)鍵詞:Sybase

贊助商鏈接:

主站蜘蛛池模板: 轮台县| 英山县| 威宁| 梧州市| 册亨县| 无锡市| 息烽县| 呼图壁县| 浠水县| 新丰县| 客服| 盐津县| 康保县| 镇康县| 崇义县| 江华| 班戈县| 张家口市| 华池县| 平顶山市| 东兴市| 通山县| 湖南省| 钟山县| 霸州市| 孝义市| 淳安县| 蓬安县| 平陆县| 闸北区| 木里| 基隆市| 犍为县| 长垣县| 盘锦市| 申扎县| 曲阳县| 科尔| 仙游县| 弥勒县| 普陀区|