당신이 적절한 권한을 가지고 있고, xp_cmdshell을 사용할 수있는 경우, 당신은 할 수 있습니다
http://aspfaq.com/sql2005/show.asp?id=29
: cmdshell 다시 적절한 권한을 가정하고, 사용하지
EXEC xp_cmdshell 'md "<path>"';
--...repeat for each node in the path
경우 임시 sp_configure를을 사용하여 활성화 할 수 있습니다
다시 설정하는 것을 잊지 마십시오!
그렇지 않으면 엔진이 기본 위치에 데이터베이스 파일을 놓을 수없는 이유는 무엇입니까? C : 이외의 드라이브를 사용하는 경우 지정한 드라이브가 존재하는지 확인해야하며,이 파일을 다른 위치에 두어도 괜찮은지 사용자에게 확인하지 않아야합니다. 임의의 위치를 선택하면 활성 SQL Server 파일을 확인하지 못할 수 있습니다. 이 기본 인스턴스가 아니라면
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
:
당신이이 아래의 기본 인스턴스에 대한 키 DefaultDataDir 및 DefaultLogDir 같은 레지스트리에있는 공격자는 xp_regread (문서화, 지원되지 않는) ...을 사용하여 기본 경로를 확인할 수 있습니다 이 문서 확인 : 당신이 당신의 MDF/LDF는 당신이 원하는 방식으로 파일 이름을 지정할 수 있습니다 단지 있도록
http://foxtricks.blogspot.com/2009/06/how-to-determine-default-database-path.html
가 대신 DBNAME - 데이터, 이러는를 DBNAME 로그? 그렇다면 왜? 파일의 실제 이름에 의존하는 스크립트를 작성 했습니까? 이 일의 동기 부여에 관해서는 정말 궁금합니다.
질문은 약간 단순화되었습니다. 파일 경로 제어의 주된 동기는 다른 데이터베이스에있는 다른 부분을 다른 드라이브에 배포해야한다는 것입니다 (다른 스핀들에 ldf 및 mdf를 유지하는 것). – homeInAStar
그래서 먼저 C : \ in play. 아마도 xp_fixeddrives 나 비슷한 것을 실행할 필요가있을 것입니다. 일반적으로이 항목을 사용자 정의해야 할 때 UI를 제공하고 사용자가 위치를 선택할 수 있습니다. SQL Server의 기본 데이터베이스 작성 UI와 달리 파일을 다른 드라이브에 저장하는 것이 좋습니다. 그러나 이용 가능한 드라이브 문자가 하나 뿐인 경우 ... –