xp_cmdshell을 사용하여 디렉터리를 만들었지 만 권한으로 인해 삭제할 수 없기 때문에 폴더 소유자를 볼 수 없어도됩니다. 폴더를 삭제하려면 안전 모드로 들어가야합니다. SQL Server 2008을 사용 중입니다.SQL Server에서 만든 폴더를 삭제할 때 액세스가 거부되었습니다.
0
A
답변
1
위험, 윌 로빈슨, 위험!
보안, 미래 보장 및 확장 성 측면에서 이상적이지 않을 수 있습니다. 그 중 아무 것도 귀하의 코드에 우선 순위가 없다고 가정 할 때, Edgard의 대답으로 문제를 해결하십시오.
그렇지 않으면 DBMS (직접) 파일 시스템에 폴더를 쓰는 디자인에 의문이 생깁니다. 나는 당신이 당신의 이유를 가지고 있다는 것에 의문을 제기하지 않습니다, 그것은 단지 당신이 이미 코스에 전념 할 때까지 당신을 물지 않을 매우 크지 만 명백하지 않은 위험이 있다는 것입니다. 자신이하는 일을하는 데있어 위험이 적고보다 직관적 인 방법이있을 수 있습니다.
1
ACL 문제 일 수 있습니다.
xp_cmdshell
으로 만든 디렉터리는 SQL Server (서비스 계정)에서 소유하며 해당 액세스 권한은 부모로부터 상속됩니다.
- 이미 좋은 액세스 권한이 다른 내부 디렉토리를 만듭니다
당신이 생성 한 후 디렉토리의 내용을 수정해야하는 경우
, 당신은해야합니다. - 또는는
예를 (ACL을 조작 할 수 xp_cmdshell
및 icacls
으로) 그룹을 제공하기 위해 적합한 무엇에 다음 코드에서 domain\group
& d:\folder_path
(사용자, 관리자를 변경 생성 한 후 더 많은 권한을 부여 등) 디렉토리에 대한 모든 :
exec xp_cmdshell 'icacls "d:\folder_path" /grant "domain\group":(f)'
나는 Paradox 테이블과 함께 작업하고 있으며 SQL 테이블의 내용을 복사해야합니다. 테이블은 lck 파일로 잠겨있어서 openrowset을 실행할 수 없으며 테이블과 테이블에서 복사본을 만들 수 있습니다. openrowset을 실행하지만 SQL 프로 시저로 만든 폴더를 제거 할 수 없다는 것을 깨달았다. 덜 위험한 다른 솔루션을 찾으려고 노력할 것입니다. – jos3m