I was trying to attach a SQL Database into local SQL Express and got an error “Unable to open the physical file. Operating system error 5. 5(Access is denied)”. The reason is for the lack of permissions. The default data directory has Full control permission to MSSQL$SQLEXPRESS. If you want to attach a database in a different location then you should add the permission to that directory.
Error
-
Error occurred when attaching a database
Unable to open physical file - Operating system error 5: 5(error not found) Microsoft SQL Server: Error 5120
Test environment
Solution
-
Add Full control to MSSQL$SQLEXPRESS to the specific directory
[현상]
SharePoint 내 AD 의 도메인 그룹 혹은 사용자를 추가한 상태에서 해당 object 를 삭제하고 동일한 ID 로 다시 생성한 경우 접근을 할 수 없음
[점검 내역]
- 조직 구성
- TestOU1
- TestOU1_Sub1
- TestOU1_Sub1_User1
- TestOU1_Sub1_User2
- TestOU1_Sub2
- TestOU1_Sub2_User1
- TestOU1_Sub2_User2
- TestOU1_User1
- TestOU1_User2
- TestOU2
- TestOU2_User1
- TestOU2_User2
- 사이트 구성
- extranet.spnote.com
- TestOU1, TestOU2 도메인 그룹에 읽기 권한 추가 - TeamSite_OU1
- TestOU1 도메인 그룹에 읽기 권한 추가 - TeamSite_OU2
- TestOU2 도메인 그룹에 읽기 권한 추가
- 테스트
- 사용자 이동
- 그룹: TestOU1_User2 를 TestOU2 로 이동 (정상 동작)
- OU 만 이동 시 권한의 변화 없음 (그룹 간 이동이 아님) - 이동 전
- 이동 후
- 사용자 삭제: TestOU1_User2
- 재 인증 요청함
- 사용자만 다시 추가: TestOU1_User2
- 인증은 했으나 Access Denied 됨
- TestOU1 그룹에 TestOU1_User2 추가 (정상 동작)
- TestOU1 그룹 삭제
- 접근 불가
- TestOU1 그룹 재 생성, 사용자 멤버 재 구성 후에도 접근 불가
- 브라우저 재 시작해도 접근 불가
- IIS 에서 App Recycle, Reset 해도 접근 불가
- User Profile compile 은 VM 에 구성되지 않아서 테스트 불가 (과거 운영에서 시도 시 되지 않았음)
- The User Profile Replication Engine will not replicate distribution lists or security groups,
but it will replicate site memberships (for example, My Sites).
- 관리자로 로그인하여 사이트 접근 권한 확인 시 접근 불가 상태 확인
[원인]
SharePoint 에서는 동일한 ID 의 계정이지만 내부에서 관리하는 SID(Security Identifier) 가 다르므로 다른 권한으로 인식하여 Object 가 다시 추가되더라도 접근을 할 수 없는 현상.
[해결]
- Migration 처리
- AD Groups cannot be used to assign permissions in SharePoint
- 재 생성된 사용자 혹은 그룹의 Migration 처리
- SharePoint 내부 DB 에서 Guid 필드값이 업데이트 됨
- 이후 정상 접속됨
[참고] 상세 테스트
- Domain Group, Domain Group 내 사용자, 직접 추가된 사용자 삭제
- 그룹 권한(TestOU1_Sub2) 삭제
- (#1) 그룹 권한(TestOU1_Sub2) 추가 시 레코드 추가됨
- Domain Group 일 경우 Token 필드에, 그룹 내 사용자는 ExternalToken, ExternalTokenLastUpdated 필드에 값이 있음 - (#2) 그룹 내 사용자가 최초 로그인 시 레코드 추가됨
- TestOU1_Sub2_User2 - (#1) TestOU1_Sub2 그룹 삭제 시
- TestOU1_Sub2_User2 접근 불가
- DB 값 변화 없음
- (#1) TestOU1_Sub2 그룹 재 생성, 멤버 구성
- 변화 없음 (3번과 동일함) - Group Migration
- SystemID 변경 됨
- 정상 로그인 됨
- 그룹 권한(TestOU1_Sub2) 내의 AD 계정(TestOU1_Sub2_User2) 삭제
- 변화 없음
- 페이지 접속 시 인증창 나타남
- DB 값 변화 없음
- AD Object 재 생성 및 TestOU1_Sub2 그룹에 멤버로 추가
- 정상 로그인 됨
- SharePoint 에 추가된 그룹 내 사용자는 Migration 하지 않아도 재 인식
- 사용자는 SharePoint 에 직접 추가된 것이 아님 - 기존 레코드의 tp_Deleted, tp_ExternalToken, ExternalTokenLastUpdated 값 변경되고 신규 레코드가 추가됨
- AD User (SID_Test2, 3) 삭제
- TeamSite4 의 Members 그룹에 SID_Test2, SID_Test3 사용자 추가
- SID_Test2 는 삭제, SID_Test3 는 삭제 후 재 생성하고 MigrateUser 수행
- 두 계정 로그인 후
- 두 계정 삭제 후
- 접속 시 인증창 나타남
- DB 변화 없음 - AD User(SID_Test3) 만 다시 생성
- 사이트 접속 시 Access Denied
- User migration
- SID_Test2
- 사용자 존재하지 않거나 유일하지 않다고 표시됨
- 접속 시 인증창 나타남
- SID_Test3
- 정상 적용됨
- 정상 로그인
- SharePoint 권한: 변화 없음
Configurations for changing a Web Application account are needed at many different locations including System, IIS, and Database. If you just changed an Application Pool identity directly from IIS, you may get an error message of “Cannot Connect to the configuration database.” So, I recommend you to use the method that SharePoint provides and will describe what SharePoint does when applying it.
How to change to a new account (SPNOTE\SP_PortalApp2) and what happened after applying it.
- Create a new account
ex) SPNOTE\SP_PortalApp2 (current: SP_PortalApp)
- Create an account as a domain user
- Register the account as managed account and configure it for a Web Application Pool
- Move to Central Admin > Security > Configure managed accounts
- Register as managed account
- Move to Central Admin > Security > Configure service accounts
- Select a Web Application Pool and the new account (SP_PortalApp2)
- Click OK
- When you click OK, you will see this message. You should run “IISRESET /NOFORCE” on all servers in the farm. Application Pool for each Web App is changed automatically though. Refer to 3.3)
- What has happened after applying it?
- SharePoint automates various configurations to the System, IIS, and SQL Server
- The user has added into three groups
- IIS_IUSRS, Performance Monitor Users, WSS_WPG
- Application Pool Identity has changed
- The Application Pool is recycled
- The user has added to related SharePoint databases (For my environment)
- Owners: ProfileDB , SocialDB, SyncDB, WSS_Content_Intranet
- WSS_Content_Application_Pools: SharePoint_AdminContent, SharePoint_Config, StateService
# ex) WSS_Content_Intranet (http://intranet.spnote.dev)
* When you change the service account to another one ex) SP_PortalAppNew and delete from Managed Accounts, the SP_PortalApp2 still exists in WSS_Content_Intranet Database. This means SharePoint doesn’t delete the user(SP_PortalApp2) from the Database automatically.
- Access to the site (http://intranet.spnote.dev)
- I faced the error “Cannot Connect to the configuration database.”
- At this time I didn’t run the IISRESET and you may notice all credentials must be updated. If you have multiple servers in a farm, then this PowerShell script may help you.
- Run the IISRESET /NOFORCE
- Access again
- Fill account information
- It works fine
In OOTB SharePoint 2010, all the three options for Email Notifications are checked. This may help customers for collaboration but some others may think that they receive lots of unnecessary emails and get annoyed. If your company size is big enough like me (30,000+), your IT department manager will make a request for disabling all or some of them.
The request was to disable the last option.
- Uncheck “Send me suggestions for new colleagues and keywords”
After searching on this, I found out that there is a nice one using PowerShell but I couldn’t find the how the option value is saved because the value has changed to a different value when I save it into the UserProfile. In addition, I wanted to add some features such as examining values, applying multiple sites and saving some information into a log file.
The simple application looks like below.
At first, I thought updating the options for the UserProfile should be easy but if you tried some combinations, you will realize saved values are somehow different than the value should be.
You may think the option value will be saved like this
[V] Notify me when someone leaves a note on my profile
[V] Notify me when someone adds me as a colleague
[ ] Send me suggestions for new colleagues and keywords
=> option value: 110
# Binary and Decimal values
Surprisingly, you will notice the Email Notification setting value is 100 (SP) instead of 110 (UI) when you read it from SharePoint. I could figure out after trying several times with combinations
Now I am going to explain how the value is saved.
- Without conversions – think the other way
- Checked: 0, Unchecked: 1
- Concatenate the option values in opposite order
- Concatenate them in descending order (from 3 to 1)
- Convert UI one (110) to SharePoint one (100)
- Reverse the each options
- Reverse characters
The option value 110 (UI Version) is saved into 100 (SP Version) and I have no idea why the developer is saved it this way. You may find a method for doing this from SharePoint dlls(Please let me know if you find it).
Some tips from my exprience are
- SPSEmailOptins value is null (default)
- The value null means 111 (all of them will be checked)
- Check the value is null when you read the value
You can read the value once you saved it.
- Login as farm administrator account
- you can add another account at UserProfileServiceApplication > Administrators for testing.
- Check if user exists from UserProfileManager
- UserProfileManager.UserExists(accountName)
I had a hard time configuring My Site and testing this app. My Site configuration was hard and took some time. I will write an article about it later.
아침 출근하다 읽은 기사입니다.
.NET vs Windows 8 에 대한 개발자 경험과 생각입니다.
다행히도 .NET 개발자가 죽지는 않겠다는 것 같습니다.
Metro App 들이 얼마나 성황될지는 모르지만 HTML5 + JavaScript 는 새로운 주류가 될 것 같습니다.
인상적인 부분은 마지막 답글에서 Windows Mobile 이후 WP7 이 나올때 legacy support 가 없으면 개발자가 다치고 승질나서 떠나갈 수도 있다는 것을 MS 도 알거라는 내용이 있습니다.
딱히 개인소개 페이지가 없어서 어떠신 분인가 확인이 되지 않는 찰나에 Archives 에서 Inside Red Gate 가 보여서 들어가보았는데 Red Gate 에서 일하시는 분이 맞네요~(공신력 상승) DB 나 .NET 관련 툴 제작 회사이나 Reflector 를 산 회사로 많이? 알려졌습니다. 어디선가 일하기 좋은 100 대 기업에 속했다고 본 기억이 납니다. (아마도 영국내~ 그래도 부럽~~) 하지만, Reflector 의 유료화로 인해 개발자들이 기분이 좀 안 좋은 것 같습니다.
오늘 아침 본 기사인데, Netflix 라는 회사가 Cloud 로 전환하면서
겪게되는 이야기인 것 같습니다. (저도 출근 중에 읽어서 먼 소린지 잘 모름 ^^)
개발자 출신이 CEO 이고 임원들도 엔지니어들이다 보니 CIO 가 딱히 없다고 하네요~
기억나는 것은 아래와 같습니다.
1. Hardware 부분은 Cloud 로
- 필요없어진 운영 인력을 절약?하는 무언가를 말하는 것 같음
2. 기존 DB 도 Cloud 로 (처음엔 아마존의 SimpleDB 이젠 아파치의 카산드라)
- 카산드라 전문가가 기존의 스키마를 어떻게 적용해야할지 개발자에게 가르쳐준다는 듯…
3. Cloud 로 변화하면서 겪는 고통과 해결?
시스템이 다르다보니(Not windows) 읽기가 쉽지 않은 것 같습니다.
고유한 단어들도 보이고… 여튼, 시간날때 사전 준비하시고 읽어보세요~
Finally I got a free Reflector Ver 6 after I register with a key from Red-Gate. The redgate posted a message that It will not expire or force you to update for this version. I've used it for around one month and I haven’t got any disturbing messages yet.
You can register by using the link on the Disassembler window or help menu. You will get received an email with a serial key as soon as you register it. (This serial key can be used to active up to 5 machines.)
Unfortunately there is no separate download link for this version. Only available to existing users of the free edition and the update mechanism will update to the 6.8 version. I cannot guarantee you all things work well so your reflector may be upgrated to version 7.
[2011.07.27]
I sent the my reflector folder(contains files) (Ver 6.8) to one of my colleagues and she executed it then activation / registration window popped up so she could register using the register button. Look for the version 6.8 near around you then you will get the last free version.
최근 Cross Browser 의 요구에 따른 작업을 하던 중 IE 가 아닌 타 브라우저 처리를 위한 작업을 하던 중 페이지 내에서 특정 태그와 그 내용을 지워야하는 상황이 발생했었습니다. 사실 한두개 바꾸는 거라면 다른 옵션은 신경도 쓸 필요가 없겠지만, 약 100 개의 페이지 정도 되는 상황이라면 무언가 이 단순한 작업을 처리해 줄 도구들을 찾기 마련입니다.
이 작업을 해소하기 위해 Visual Studio 에서도 Find and Replace 메뉴에서 정규 표현식 사용하면 되겠거니 하면 후회하실 수도 있습니다. 그 이유는 여기서 사용하는 정규 표현식은 일반적인 것과는 다릅니다. 물론, 아래의 참고 링크들을 숙지하고 정규 표현식에 지식이 조금 있는 분이시면 VS 의 OOTB 로 해결하면 됩니다. 저는 이런 상황에 직면할때마다 기왕이면 시간 좀 들여서 좀 더 세련된 방법이나 좋은 방법을 배우고 적용하고 싶지만 여유를 주지 않는 업무 환경이 처리를 단순하게 하는 것 같아 안타깝습니다. 사실, VS 보다는 Office 를 주로 켤때면 암울합니다.
VS IDE Regular Expressions 와 Standard regex 와의 비교입니다.
(codinghorror.com 에서 가져옴 – 원문 링크)
|
Visual Studio IDE |
Standard |
Any single character |
. |
. |
Zero or more |
* |
* |
One or more |
+ |
+ |
Beginning of line |
^ |
^ |
End of line |
$ |
$ |
Beginning of word |
< |
(no equivalent) |
End of word |
> |
(no equivalent) |
Line break |
\n |
\n |
Any character in set |
[ ] |
[ ] |
Any character not in set |
[^ ] |
[^ ] |
Or |
| |
| |
Escape special char |
\ |
\ |
Tag expression |
{ } |
( ) |
C/C++ identifier |
:i |
([a-zA-Z_$][a-zA-Z0-9_$]*) |
Quoted string |
:q |
(("[^"]*")|('[^']*')) |
Space or Tab |
:b |
[ |\t] |
Integer |
:z |
[0-9]+ |
어쨌든, aspx 페이지의 내의 object 태그를 없애는데 손쉽게 사용할 수 있는 것들을 찾아보던 중 VS 에 AddIn 되는 것과 Application 의 형태로 판매되는 것들이 있는 것을 확인했습니다. 우선 공짜이기도 하지만 VS 의 Find and Replace 처럼 수정된 내용도 Editor 내에서 볼 수 있고 원하는대로 수정을 할 수 있는 RegExAddin 을 사용하기로 했습니다.
- Link: .NET Regular Expressions Find and Replace Add-In for Visual Studio 2008 (VS 2010 은 아직 없음)
- For VS 2003: Standard Regular Expression Searcher Addin For VS.NET 2003
# 사용 예 (object 태그 제거, 잘 변경되었는지 보기 위해 열어놓기 체크)
파일이 아닌 TEXT 작업을 위해서는 Expresso 를, 파일 수정 및 좀 더 다양한 작업을 위해서는 RegexBuddy(상용: $39.95) 를 추천합니다. 저는 공짜인 Expresso 를 사용합니다.
# RegexBuddy Screenshot
- 상용이라서 그런지 꽤 좋아 보입니다.
# Expresso Screenshot
평소에는 정규 표현식과 친근하지는 않지만 문자열 처리 등에서는 아주 효율적이라고 생각하기에 공부의 필요성은 느끼지만 안타깝게도 책은 책꽂이에 모셔두고 있습니다. (혹시 정규 표현식을 잘 쓰시는 분이 계시만 친하게 지내고 싶습니다. )
SharePoint 2010 이 Deploy 되면 Delegate Control 을 잘 활용하면 되겠지만, 타 시스템(게시나 결재) 등에서도 활용할 수 있는 컨트롤을 제작하는 것도 좋을 것 같습니다.
[참고 링크]
1. VS 의 Find and Replace 의 Regular Expression 초보 팁 1
2. VS 의 Find and Replace 의 Regular Expression 초보 팁 2
3. VS 의 Find and Replace 의 Regular Expression 초보 팁 3
4. 정규 표현식 추천 책
Two month ago, I requested buying three SharePoint 2010 books to my company and I could get one of them today and it is Professional SharePoint 2010 Administration. As a SharePoint Developer + Administrator, I need to handle admin stuff as well. In SPS 2003, the main admin jobs are setting IIS and watching logs. I expect it will be much harder and need to study more on SharPoint 2010 administration.
Even though I could download many white papers and documents from Microsoft but they are too plenty and I can't get the general or wide categories with easy access like reference books on my shelf. So I'm happy for it and two books are coming up soon.
The three books I've chosen are below
I'll put notes as I read and study them.