SQL Server µÄÄ£Äâ
SQL Server µÄÄ£Äâ
רÀ¸×÷¼Ò£ºDeanna Dicken 2010Äê2ÔÂ12ÈÕ
·Ò룺 UltraDBA 2010Äê5ÔÂ25ÈÕ
ÔÌûµØÖ·£ºhttp://www.databasejournal.com/features/mssql/article.php/3863516/SQL-Server-Impersonation.htm
½éÉÜ
SQL Server µÄÄ£Ä⣬»òÉÏÏÂÎÄÇл»£¬ÊÇÒ»ÖÖ·½Ê½£¬ÔÊÐíµ±Ç°Óû§Ä£Äâ¸ø¶¨Óû§»òµÇ¼µÄȨÏÞ£¬Ö±µ½ÉÏ
ÏÂÎÄÖØÖã¬ÉèÖûØÁíÒ»¸öÓû§£¬»ò»á»°½áÊø¡£½ÓÏÂÀ´£¬ÎÒÃǽ«ÌÖÂÛÁ½ÖÖʵÏÖÕâÏîÈÎÎñµÄ»úÖÆ²¢Íê³ÉһЩ
ʵÀý¡£
SETUSER
ÔÚ SQL Server 2000 ÖУ¬Èç¹ûÄãÓÐÐèÒªÓõ½°²È«ÉÏÏÂÎÄÇл»£¬ÄãÖ»ÓÐÒ»¸öÑ¡Ôñ£ºSETUSER¡£Óøø¶¨µÄÓÃ
»§ÃûÖ´ÐÐÓï¾ä£¬ÁÙʱÉèÖÃÔÊÐíÌṩÕË»§Ö´ÐеÄȨÏÞ¡£¶à¸öµ÷ÓÃÄܹ»±»Ê¹Ó㬰²È«ÉÏÏÂÎÄÇл»Í¨¹ýµ÷Óò»
´øÓû§ÃûµÄ SETUSER Óï¾äÖØÖûØÔÀ´µÄÉÏÏÂÎÄ»·¾³¡£
Ðí¿É
ÓëÁª»ú°ïÖúÏà·´µÄÊÇ£¬Ò»¸öÕ˺ÅÏëµ÷Óà SETUSER ±ØÐëÓµÓÐ sysadmin ·þÎñÆ÷½ÇÉ«¡£Áª»ú°ïÖú´íÎóµÄÃè
ÊöÓû§ÓµÓÐ dbo ȨÏÞÒ²ÄÜÀûÓÃÕâ¸öÓï¾ä£¬È»ºóÕâÊDz»Ðеġ£
ʾÀý
ÏÂÃæµÄÀý×ÓչʾÁ˰²È«ÉÏÏÂÎÄÇл»´Óµ±Ç°µÇ¼Õ˺Šadminacct£¬Çл»µ½Ò»¸ö SQL µÇ¼£¬ÔÙµ½ÁíÒ»¸ö
SQL µÇ¼£¬È»ºóÇл»»ØÀ´¡£×¢Ò⣬°²È«ÉÏÏÂÎÄÊÇͨ¹ýÖ´Ðв»´øÓû§ÃûµÄ SETUSER Óï¾äÇл»»Ø°²È«ÉÏÏÂ
Îĵ½µ±Ç°µÇ¼Õ˺š£
SERTUSER 'jdoe'
SELECT SUSER_SNAME()
SERUSER 'jschmoe'
SELECT SUSER_SNAME()
SETUSER
SELECT SUSER_SNAME()
½á¹û£º
-----------------------------------
jdoe
(ËùÓ°ÏìÐÐÊýΪ 1 ÐÐ)
-----------------------------------
jschmoe
(ËùÓ°ÏìÐÐÊýΪ 1 ÐÐ)
-----------------------------------
adminacct
(ËùÓ°ÏìÐÐÊýΪ 1 ÐÐ)
ÔÚÉÏÃæµÄʾÀýÖУ¬Òª×¢ÒâµÄÊÇ jdoe ±ØÐë¾ßÓÐ sysamdin ½ÇÉ«µÄȨÏÞ²ÅÄÜÖ´Ðгɹ¦ SETUSER 'jschmoe'
ÃüÁî¡£Èç¹û jdoe ûÓÐ sysadmin ȨÏÞ£¬½«Å׳öÈçÏ´íÎó¡£
Msg 15157,Level 16,State 1,Line 3
SetuserÒòΪÈçÏÂÔÒòʧ°Ü£º
Êý¾Ý¿âÖ÷Ìå 'jschmoe' ²»´æÔÚ£¬
¶ÔÓ¦µÄ·þÎñÆ÷Ö÷Ìå²»´æÔÚ·þÎñÆ÷µÄ·ÃÎÊ£¬
´ËÀàÐÍÊý¾Ý¿âÖ÷Ìå²»Äܱ»Ä£Ä⣬
»òÕßÄãûÓÐȨÏÞ¡£
SETUSER ÓÐÒ»¸ö¿ÉÑ¡²ÎÊý WITH NORESET£¬ÓÃÔÚÉÏÃæµÄʾÀýÖпÉÒÔÄ£ÄâÉÏÏÂÎIJ»±»ÖØÖõ½¿ªÊ¼µÄ
sysadmin¡£ÔÙÒ»´ÎÒÔ adminacct µÇ¼£¬Ö´ÐÐÈçϽű¾¡£
SETUSER 'jdoe' WITH NORESET
SELECT SUSER_SNAME()
SETUSER 'jschmoe'
SELECT SUSER_SNAME()
SETUSER
SELECT SUSER_SNAME()
½á¹û£º
-----------------------------------
jdoe
(Ëù
Ïà¹ØÎĵµ£º
ͼ±í
ͼ±í(ÓֳƹØÏµÍ¼)ÊÇSQL ServerÖÐÒ»ÀàÌØÊâµÄÊý¾Ý¿â¶ÔÏó£¬ËüÌṩ¸øÓû§Ö±¹ÛµØ¹ÜÀíÊý¾Ý¿â±íµÄ·½·¨¡£Í¨¹ýͼ±í£¬Óû§¿ÉÒÔÖ±¹ÛµØ´´½¨¡¢±à¼Êý¾Ý¿â±íÖ®¼äµÄ¹ØÏµ£¬Ò²¿ÉÒÔ±à¼±í¼°ÆäÁеÄÊôÐÔ¡£ÀûÓÃÆóÒµ¹ÜÀíÆ÷´´½¨Í¼±íµÄ¾ßÌå²½ÖèÈçÏ£º
(1)ÔÚÆóÒµ¹ÜÀíÆ÷ÖУ¬Õ¹¿ªÖ¸¶¨µÄ·þÎñÆ÷ºÍÊý¾Ý¿â£¬´ò¿ªÒª½¨Á¢µÄͼ±íËùÔÚµÄÊý¾Ý¿â£¬ÓÒ»÷ͼ±íÍ ......
´¥·¢Æ÷
´¥·¢Æ÷ÊÇÒ»ÖÖÌØÊâÀàÐ͵Ĵ洢¹ý³Ì£¬Ëü²»Í¬Ç°Ãæ½éÉܹýµÄ´æ´¢¹ý³Ì¡£´¥·¢Æ÷Ö÷ÒªÊÇͨ¹ýʼþ½øÐд¥·¢¶ø±»Ö´Ðе쬶ø´æ´¢¹ý³Ì¿ÉÒÔͨ¹ý´æ´¢¹ý³ÌÃû³Æ¶ø±»Ö±½Óµ÷Óᣴ¥·¢Æ÷ÊÇÒ»¸ö¹¦ÄÜÇ¿´óµÄ¹¤¾ß£¬Ëüʹÿ¸öÕ¾µã¿ÉÒÔÔÚÓÐÊý¾ÝÐÞ¸Äʱ×Ô¶¯Ç¿ÖÆÖ´ÐÐÆäÒµÎñ¹æÔò¡£´¥·¢Æ÷¿ÉÒÔÓÃÓÚSQL ServerÔ¼Êø¡¢Ä¬ÈÏÖµºÍ¹æÔòµÄÍêÕûÐÔ¼ì²é¡£
µ±Íùijһ ......
ÊÓͼ²Ù×÷
ÊÓͼÊÇ´ÓÒ»¸ö»òÕß¶à¸ö±í»òÊÓͼÖе¼³öµÄ±í£¬Æä½á¹¹ºÍÊý¾ÝÊǽ¨Á¢ÔÚ¶Ô±íµÄ²éѯ»ù´¡Éϵġ£ÓëÕæÊµµÄ±íÒ»Ñù£¬ÊÓͼҲ°üÀ¨¼¸¸ö±»¶¨ÒåµÄÊý¾ÝÁкͶà¸öÊý¾ÝÐУ¬µ«ÕâЩÊý¾Ýʵ¼ÊÉÏÊDZ»ÆäÒýÓÃµÄÆäËû±íÖеÄÊý¾Ý¡£Òò´Ë£¬ÊÓͼ²»ÊÇÕæÊµ´æÔڵĻù´¡±í£¬¶øÊÇÒ»¸öÐéÄâµÄ±í£¬ÊÓͼËù¶ÔÓ¦µÄÊý¾Ý²¢²»Êµ¼ÊµØÒÔÊÓͼ½á¹¹´æ´¢ÔÚÊý¾Ý¿âÖУ¬¶øÊÇ´æ ......
´¥·¢Æ÷
´¥·¢Æ÷ÊÇÒ»ÖÖÌØÊâÀàÐ͵Ĵ洢¹ý³Ì£¬Ëü²»Í¬Ç°Ãæ½éÉܹýµÄ´æ´¢¹ý³Ì¡£´¥·¢Æ÷Ö÷ÒªÊÇͨ¹ýʼþ½øÐд¥·¢¶ø±»Ö´Ðе쬶ø´æ´¢¹ý³Ì¿ÉÒÔͨ¹ý´æ´¢¹ý³ÌÃû³Æ¶ø±»Ö±½Óµ÷Óᣴ¥·¢Æ÷ÊÇÒ»¸ö¹¦ÄÜÇ¿´óµÄ¹¤¾ß£¬Ëüʹÿ¸öÕ¾µã¿ÉÒÔÔÚÓÐÊý¾ÝÐÞ¸Äʱ×Ô¶¯Ç¿ÖÆÖ´ÐÐÆäÒµÎñ¹æÔò¡£´¥·¢Æ÷¿ÉÒÔÓÃÓÚSQL ServerÔ¼Êø¡¢Ä¬ÈÏÖµºÍ¹æÔòµÄÍêÕûÐÔ¼ì²é¡£
µ±Íùijһ ......
sql
ÖÐ case when Óï·¨
sqlÓïÑÔÖÐÓÐûÓÐÀàËÆCÓïÑÔÖеÄswitch caseµÄÓï¾ä£¿£¿
ûÓÐ,ÓÃcase when À´´úÌæ¾ÍÐÐÁË.
ÀýÈç,ÏÂÃæµÄÓï¾äÏÔʾÖÐÎÄÄêÔÂ
select getdate() as &n ......