You also place an inordinate amount of trust on the jail system of the OS -- making sure that the various virtual machines can't see each other across the harddrive(s) they share.
They don't share any
partitions. In fact each virtual machine has their own install of an OS and they can't mount other volumes from the host machine.
And lastly, you'd be sharing SQL database access with everyone else on the virtual machine. That could open up vulnerabilities if permissions are not exactly right.
No. Each machine runs their own services. Each VM will have a web server, sql, etc or whatever else the operator wants.
This depends on the setup.