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)ÔÚÆóÒµ¹ÜÀíÆ÷ÖУ¬Õ¹¿ªÖ¸¶¨µÄ·þÎñÆ÷ºÍÊý¾Ý¿â£¬´ò¿ªÒª½¨Á¢µÄͼ±íËùÔÚµÄÊý¾Ý¿â£¬ÓÒ»÷ͼ±íÍ ......
--·ÃÎʲ»Í¬µçÄÔÉϵÄÊý¾Ý¿â
--Èç¹û¾³£·ÃÎÊ»òÊý¾ÝÁ¿´ó,½¨ÒéÓÃÁ´½Ó·þÎñÆ÷
--´´½¨Á´½Ó·þÎñÆ÷
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','Ô¶³Ì·þÎñ ......
ÈÕÆÚºÍʱ¼äº¯Êý¶Ô½¨Á¢Ò»¸öÕ¾µãÊǷdz£ÓÐÓõġ£Õ¾µãµÄÖ÷ÈËÍùÍù¶ÔÒ»¸ö±íÖеÄÊý¾ÝºÎʱ±»
¸üиÐÐËȤ¡£Í¨¹ýÈÕÆÚºÍʱ¼äº¯Êý£¬Äã¿ÉÒÔÔÚºÁÃë¼¶¸ú×ÙÒ»¸ö±íµÄ¸Ä±ä¡£
·µ»Øµ±Ç°ÈÕÆÚºÍʱ¼ä
ͨ¹ýº¯ÊýGETDATE£¨£©£¬Äã¿ÉÒÔ»ñµÃµ±Ç°µÄÈÕÆÚºÍʱ¼ä¡£ÀýÈ磬Óï¾äSELECT GETDATE()
·µ»ØÈçϵĽá¹û£º
…………&h ......
SQLÖÐNµÄ×÷ÓÃ?
exec sp_executesql N'SELECT TOP 1 ISNULL(vDefine1,'''') AS vMonth, dtBegin, dtEnd from SM_ActMonth WHERE vActID=@P1 AND bCarryForward=@P2 ORDER BY iListID DESC
', N'@P1 varchar(3),@P2 bit', '001', 1
exec sp_executesql N'SELECT * from KEHU WHERE KHDM>=@P1 AND ZK=@P2',N'@P1 VARCHAR ......
ÎÒÃÇÔÚÊý¾Ý¿âÖÐʹÓñíµÄʱºò,¾³£»áÓöµ½Á½ÖÖʹÓñíµÄ·½·¨,·Ö±ð¾ÍÊÇʹÓÃÁÙʱ±í¼°±í±äÁ¿¡£ÔÚʵ¼ÊʹÓõÄʱºò£¬ÎÒÃÇÈçºÎÁé»îµÄÔÚ´æ´¢¹ý³ÌÖÐÔËÓÃËüÃÇ£¬ËäÈ»ËüÃÇʵÏֵŦÄÜ»ù±¾ÉÏÊÇÒ»ÑùµÄ£¬¿ÉÈçºÎÔÚÒ»¸ö´æ´¢¹ý³ÌÖÐÓÐʱºòȥʹÓÃÁÙʱ±í¶ø²»Ê¹Óñí±äÁ¿£¬ÓÐʱºòȥʹÓñí±äÁ¿¶ø²»Ê¹ÓÃÁÙʱ±íÄØ?
¡¡¡¡ÁÙʱ±í
¡¡¡¡ÁÙʱ±íÓëÓÀ¾Ã±íÏàËÆ£ ......