limiting ability of Site Owner to delete sites?

Is there any way to eliminate the ability of Site Owners to delete their sites?

I don't see anything obvious under site permissions, and then even beyond that how would this change become permanent for new sites that have not yet been created?  Owners by default have the ability to delete their sites.  How can this be removed for them for existing sites, and for the going forward, but still let them do everything else that a Site Owner needs to do.

As I last resort, perhaps there is a css hack to hide the "Delete this Site" link under Site Settings?

Thanks in advance.
Who is Participating?
AndornagyConnect With a Mentor Commented:
The normal way for this is using EventReceivers (in this case .
Every list have Events Syncron or Asyncron. With Sync events You can deny the operation.

You need to create and EventReceiver dll with visual studio, install to the gac and assign to lists.

find usefull video:

note: Event Receivers somtimes called event handlers.
crmsharepointAuthor Commented:
Thanks - actually I'm looking to prevent them from deleting SITES, as opposed to lists.  They can delete the lists all they want as far as I'm concerned.

I found one blog that talked about renaming the page that "Delete this site" links to, but no discussion about actually limiting the delete site permission itself.
Ted BouskillSenior Software DeveloperCommented:
No.  A site owner has full permissions by design.  I'd recommend you change the role of users that should not delete sites to a lesser one.
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

crmsharepointAuthor Commented:
I thought about this.  However, these particular users are tasked with performing functions that typically site owners are tasked with doing:

adding/removing users
creating/deleting lists
modifying list schema
designing pages
creating sub-sites, etc.  

Is there a way to give them these capabilities without having the delete site capability?
As the name show "Site Owners" have rights to "Own" the site (including deletion).
But You can use Event Receivers to disable Site deletion by code.
Use should write code that uses SPWebEventReceiver.SiteDeleting method and need to assign this eventreceiver to sites (also you can do this with code).

Disabling list item, list or site deleting is similar. Check links above.
Ted BouskillConnect With a Mentor Senior Software DeveloperCommented:
One choice you have that might work is create your own custom group and add the permissions you need.  This URL has a matrix of the features:

You will likely have to play with it a bit using a test account.
crmsharepointAuthor Commented:
I was also able to do this by renaming deleteweb.aspx in the 12 hive.
All Courses

From novice to tech pro — start learning today.